Здравствуйте. Есть XML файл. Нужно открыть его, с помощью VBA как текст, но без служебной информации (теги и т.п.), только полезные данные. Вопрос: как это можно сделать, есть ли функция?
Мне нужно не импортировать на лист, а открыть файл XLS и сохранить (или присвоить переменной) данные в чистом виде (без тегов). Зачем самому создать процедуру, если есть готовая, ведь сохраняется XML документ как текст.
Или вот похожая от doober'a, чуть для другого значения, пусть и тут будет:
Private Sub CommandButton1_Click() Dim sXpath As String sXpath = "//Parcel" sFile = "C:\doc6043466.xml"
With CreateObject("MSXML2.DOMDocument") .Load sFile Read_t = .DocumentElement.SelectNodes(sXpath)(0).Attributes(0).NodeValue End With MsgBox Read_t End Sub
надо использовать библиотеку Microsoft XML (версия хоть 3.0 хоть 6.0) если в referensax нету надо скачать - (есть на сайте cbr.ru - ссылки уже на этом форуме давал - можно найти) имеем xml пример <?xml version="1.0" encoding="windows-1251"?> <Файл ВерсФорм ="5.01" > <Документ ДатаДок="27.09.2011" ОтчетГод="2011"> </Документ> </Файл>
Public Sub xml() Dim x As String Dim xml_doc As New DOMDocument xml_doc.Load "C:\xml.xml" Set NodeList = xml_doc.SelectNodes("//Файл/Документ") For Index = 0 To NodeList.Length - 1 ' Set xmlNode = NodeList.Item(Index).CloneNode(True) Set node_attr = xmlNode.Attributes(0) 'Дата документа x = node_attr.Value ' Set node_attr = xmlNode.Attributes(1) 'Год документа y = node_attr.Value ' Next Index End Sub
Тогда уж лучше так - без библиотек, но зато работает :) Т.е. используем то, что уже есть в системе. У меня по крайней мере так заработало, ничего не меняя в референсах.
Public Sub xml() Dim x As String With CreateObject("Microsoft.XMLDOM") .Load "C:\xml.xml" Set NodeList = .SelectNodes("//Файл/Документ") ... ... далее без изменений.