4
我有一個客戶提供以下XML從中我需要提取類的物品:的VBScript通過XML子節點迭代和檢索值
<CustomerProductName>
<ProductName>
<ProductAssetName>
作爲單獨訂單處理每個<CustomerProducts>
部分。
我可以得到<CustomerProducts>
並提取<CustomerProductName>
沒有問題,並遍歷每個部分中的值。
但我不明白我是如何得到它下面的值。如果有人能夠給我一些指示,告訴我如何實現這一點,我會一直努力嘗試一整天。
的基本代碼是XML低於
<?xml version="1.0"?>
<Products_Root>
<Products_IPN VendorID="11344" >
<CustomerProducts CustomerProductName="Test" ProductCount="7">
<Products ProductType="BOOK" ProductName="Donald" >
<ProductComponents ProductAssetName="Donald.pdf" />
<ProductSpecs SpecClass="MEASUREMENT" SpecType="MARGINS" SpecValue="PER FILE"/>
<ProductSpecs SpecClass="OPERATION" SpecType="BIND" SpecValue="SADDLE"/>
</Products>
<Products ProductType="BOOK" ProductName="Duck">
<ProductComponents ProductAssetName="Duck.pdf"/>
<ProductSpecs SpecClass="MEASUREMENT" SpecType="MARGINS" SpecValue="PER FILE"/>
</Products>
</CustomerProducts>
<CustomerProducts CustomerProductName="Test2" ProductCount="2">
<Products ProductType="BOOK" ProductName="Micky">
<ProductComponents ProductAssetName="Mouse.pdf" />
<ProductComponents ProductAssetName="Mouse.pdf" />
<ProductSpecs SpecClass="MEASUREMENT" SpecType="MARGINS" SpecValue="PER FILE"/>
</Products>
<CustomerProductSpecs SpecClass="OPERATION" SpecType="KITTING" SpecValue="SHRINKWRAP KIT"/>
</CustomerProducts>
<CustomerProducts CustomerProductName="Test3" ProductCount="6">
<Products ProductType="BOOK" ProductName="Minnie">
<ProductComponents ProductAssetName="Mouse" />
<ProductSpecs SpecClass="MEASUREMENT" SpecType="MARGINS" SpecValue="PER FILE"/>
</Products>
</CustomerProducts>
</Products_IPN>
</Products_Root>
在這裏,我的VBScript代碼到目前爲止
Dim xmlDoc, objNodeList, plot
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.setProperty "SelectionLanguage", "XPath"
xmlDoc.load("E:\dropbox\Dropbox\Hobbs\Xerox Example Files\test.xml")
Set objNodeList = xmlDoc.getElementsByTagName("CustomerProducts")
plot="No Value"
If objNodeList.length > 0 then
For each x in objNodeList
JobName=x.getattribute("CustomerProductName")
msgbox JobName
Next
Else
msgbox chr(34) & "CustomerProducts" & chr(34) & " field not found."
End If
託默勒格,感謝您的 – Greybeard
要惱火到下部結構
'ASSET =「./Products/ProductSpecs」
– Greybeard
我的答案顯示了使用XPath('SelectNodes()')的方式。如果你不想循環遍歷節點,那麼你不需要使用'For Each'。查看[文檔](http://msdn.microsoft.com/en-us/library/windows/desktop/ms761386(v = vs.85).aspx)以查明其他內容將對您有所幫助方法和屬性可用。 – Tomalak