从下面的XML中我们如何根据给定的deliveryFormat提取速度'键值'的值。例如deliveryFormat key = 1的速度值为2,3,4,deliveryFormat key = 4的速度值为5,6,4
以下代码为我提供了可用格式的键,并根据这些键我想提取速度键值
XmlDocument results = new XmlDocument();
results.LoadXml(theModel.SearchLog.AvailabilityXML);
var AvailableFormats = results.SelectNodes("//apiResponse/availableFormats/availableFormat/deliveryFormat/@key");
XML
<?xml version="1.0" encoding="UTF-8"?>
<apiResponse>
<availableFormats>
<availableFormat availabilityDate="2014-01-31">
<deliveryFormat key="1">Encrypted Download</deliveryFormat>
<deliveryModifiers/>
<availableSpeeds>
<speed key="2">2 Hours</speed>
<speed key="3">24 Hours</speed>
<speed key="4">4 Days</speed>
</availableSpeeds>
<availableQuality>
<quality key="1">Standard</quality>
<quality key="2">High</quality>
</availableQuality>
</availableFormat>
<availableFormat availabilityDate="2014-01-31">
<deliveryFormat key="4">Paper</deliveryFormat>
<deliveryModifiers/>
<availableSpeeds>
<speed key="5">2 Hours</speed>
<speed key="6">24 Hours</speed>
<speed key="4">4 Days</speed>
</availableSpeeds>
<availableQuality>
<quality key="1">Standard</quality>
<quality key="2">High</quality>
</availableQuality>
</availableFormat>
</availableFormats>
</apiResponse>
答案 0 :(得分:1)
请尝试以下xpath。它为speed
提供了所有deliveryFormat
1。您可以根据需要更改键值。
//availableFormat[deliveryFormat/@key='1']//speed
或者,如果您只想要速度键:
//availableFormat[deliveryFormat/@key='1']//speed/@key
编辑:修复了xpath条件