Удалить заголовок XML с помощью VBA

У меня есть файл xml ниже;

<?xml version="1.0" encoding="UTF-8"?>
<response><XXX><id>1</id></XXX></response>

Я хочу удалить заголовок XML <?xml version="1.0" encoding="UTF-8"?> из файла, чтобы файл xml выглядел так:

<response><XXX><id>1</id></XXX></response>

Как это можно сделать с помощью Excel VBA?

Цель этого состоит в том, чтобы я мог загрузить строку без заголовка в объект MSXML2.DOMDocument через функцию LoadXML().

Спасибо.


person user781486    schedule 05.06.2014    source источник
comment
LoadXML() не имеет проблем с заголовком XML. И если XML исходит из файла, для этого также есть Load().   -  person GSerg    schedule 05.06.2014
comment
Что я сделал, так это скопировал содержимое xml из файла и вставил его в ячейку в Excel. Оттуда я использую LoadXML(). Если есть заголовок xml, загрузка не удалась. После того, как я вручную удалил заголовок, загрузка прошла успешно.   -  person user781486    schedule 05.06.2014
comment
Тогда вы, должно быть, повредили заголовок при копировании. Я не могу воспроизвести проблему с MSXML v4, v5 или v6.   -  person GSerg    schedule 05.06.2014
comment
Спасибо за попытку. Я проверю, какую ошибку я сделал. Большое спасибо.   -  person user781486    schedule 05.06.2014


Ответы (1)


Вы можете использовать функцию Replace...

Dim DoubleQuote : DoubleQuote = Chr(34)
Dim strHeader : strHeader = "<?xml version=" & DoubleQuote & "1.0" & DoubleQuote & " encoding=" & DoubleQuote & "UTF-8" & DoubleQuote & "?>"
Result = replace(strHeader,strHeader,"")
If Result = "" then
  MsgBox "Header stripped!"
Else
  MsgBox "Failed to strip header."
End If

Надеюсь, это поможет!

person Hickory420    schedule 05.06.2014
comment
Спасибо. Я уверен, что это сработает. Проголосовал. Но я думал об использовании метода, который использует некоторую функцию библиотеки XML, чтобы можно было удалить любую форму объявления xml. - person user781486; 05.06.2014