У меня есть следующий XML-документ (я удалил ненужные данные):
<?xml version="1.0"?>
<NewOrderNotification xmlns="http://payments.amazon.com/checkout/2008-11-30/">
<ProcessedOrder>
<ShippingServiceLevel>blah</ShippingServiceLevel>
<ProcessedOrderItems>
<ProcessedOrderItem>
<AmazonOrderItemCode>blah</AmazonOrderItemCode>
<Price>
<Amount>0.2</Amount>
<CurrencyCode>GBP</CurrencyCode>
</Price>
<ItemCharges>
<Component>
<Type>Principal</Type>
<Charge>
<Amount>0.2</Amount>
<CurrencyCode>GBP</CurrencyCode>
</Charge>
</Component>
<Component>
<Type>Shipping</Type>
<Charge>
<Amount>0.95</Amount>
<CurrencyCode>GBP</CurrencyCode>
</Charge>
</Component>
<Component>
<Type>PrincipalPromo</Type>
<Charge>
<Amount>0.0</Amount>
<CurrencyCode>GBP</CurrencyCode>
</Charge>
</Component>
<Component>
<Type>ShippingPromo</Type>
<Charge>
<Amount>0.0</Amount>
<CurrencyCode>GBP</CurrencyCode>
</Charge>
</Component>
</ItemCharges>
<ShippingCustomData>null</ShippingCustomData>
</ProcessedOrderItem>
</ProcessedOrderItems>
</ProcessedOrder>
</NewOrderNotification>
Я хочу знать синтаксис xpath для получения каждого из значений в 5 различных элементах <Amount>
:
А именно, как мне извлечь каждое из следующего:
NewOrderNotification - ProcessedOrder - ProcessedOrderItems - ProcessedOrderItem - Цена - Сумма
NewOrderNotification — ProcessedOrder — ProcessedOrderItems — ProcessedOrderItem — ItemCharges — Component (с типом = принцип) — Charge — Amount
NewOrderNotification — ProcessedOrder — ProcessedOrderItems — ProcessedOrderItem — ItemCharges — Component (с типом = доставка) — Charge — Amount
NewOrderNotification — ProcessedOrder — ProcessedOrderItems — ProcessedOrderItem — ItemCharges — Component (с типом = PrincipalPromo) — Charge — Amount
NewOrderNotification - ProcessedOrder - ProcessedOrderItems - ProcessedOrderItem - ItemCharges - Component (с type=ShippingPromo) - Charge - Amount
Обратите внимание на xmlns в корневом элементе.
Это код JScript, который я использую для извлечения элементов:
var xmlDoc = Server.CreateObject("Msxml2.DOMDocument.6.0");
xmlDoc.setProperty("SelectionNamespaces", "xmlns:a='http://payments.amazon.com/checkout/2008-11-30/'");
xmlDoc.loadXML(xml);
var node = xmlDoc.documentElement.selectSingleNode("XPATH_IN_HERE");
return node.text;