Необходимо читать дочерние узлы из XML-файла (форматированный и Excel.Sheet xmlns), но с использованием свойства индекса, а не дочернего номера
Мы проверяем, чтобы прочитать аналогично содержимому файла RSS / XML, используя объект с MSXML2.FreeThreadedDOMDocument,Итак, наконец, мы решили соединитель с MSXML2.DOMDocument.6.0 Затем установили некоторые свойства как Язык и Пространства имен.С его помощью можно читать непосредственно объект objXML.selectedNodes, знать, сколько элементов с помощью objXML.Length, а затем с помощью простого для каждого узла читать отдельные группы.Затем используйте текст Node.ChilNodes (nn) .text для извлечения данных, которые необходимо обработать
Пример XML-данных для чтения
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office">
<Styles>...</Styles>
<Worksheet ss:Name="movimientos">
<Table>
<Row ss:Index="1">
<Cell ss:Index="1" ss:StyleID="s1">
<Data ss:Type="String">Fecha operación</Data>
</Cell>
<Cell ss:Index="2" ss:StyleID="s1">
<Data ss:Type="String">Fecha valoración</Data>
</Cell>
<Cell ss:Index="3" ss:StyleID="s1">
<Data ss:Type="String">Cod. oper.</Data>
</Cell>
<Cell ss:Index="4" ss:StyleID="s1">
<Data ss:Type="String">Concepto</Data>
</Cell>
<Cell ss:Index="5" ss:StyleID="s1">
<Data ss:Type="String">Importe</Data>
</Cell>
<Cell ss:Index="6" ss:StyleID="s1">
<Data ss:Type="String">Saldo</Data>
</Cell>
<Cell ss:Index="7" ss:StyleID="s1">
<Data ss:Type="String">N. Documento</Data>
</Cell>
<Cell ss:Index="8" ss:StyleID="s1">
<Data ss:Type="String">Referencia 1</Data>
</Cell>
<Cell ss:Index="9" ss:StyleID="s1">
<Data ss:Type="String">Referencia 2</Data>
</Cell>
</Row>
и т. Д.
Используйте этодля чтения в ASP Classic
Set oXMLDoc = Server.CreateObject("MSXML2.DOMDocument.6.0")
oXMLDoc.setProperty "SelectionLanguage", "XPath"
oXMLDoc.setProperty "SelectionNamespaces", "xmlns:myns='urn:schemas-microsoft-com:office:spreadsheet' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns:ss='urn:schemas-microsoft-com:office:spreadsheet' xmlns:html='http://www.w3.org/TR/REC-html40' xmlns:msxsl='urn:schemas-microsoft-com:xslt' xmlns:user='urn:my-scripts'"
oXMLDoc.async = False
oXMLDoc.setProperty "ServerHTTPRequest", True
oXMLDoc.Load Server.MapPath("/bsch.xls")
Set oXMLRows = oXMLDoc.selectNodes("/myns:Workbook/myns:Worksheet/myns:Table/myns:Row")
For Each Node In oXMLRows
Response.Write "Entries=" & Node.childNodes.length
Response.Write "" & Node.childNodes(0).text & "<br/>" & Node.childNodes(1).text & Node.childNodes(2).text & Node.childNodes(3).text & Node.childNodes(4).text & Node.childNodes(5).text & Node.childNodes(6).text & Node.childNodes(7).text & Node.childNodes(8).text
Response.Write "FULL STRING CONTENT =" & Node.text & "<br/>"
Next
Изменение фактического:
Node.childNodes(n).text
для чтения каждого дочернего элемента, для чтения используется свойство INDEX, например Node.ChildNodes("@index='1'").text
(на самом деле это не выполняется)
Любой URL, у которого есть документация по XML и ASP, «как использовать», будет благодарен