2014-02-13 48 views
0

從下面的XML中,我們如何根據給定的deliveryFormat提取速度「鍵值」的值。例如deliveryFormat key = 1的速度值爲2,3,4,deliveryFormat key = 4的速度值分別爲5,6,4如何基於使用Xpath或/和C#的條件提取xml屬性值

以下代碼爲我提供了availableFormats的關鍵字,並基於這些鍵我想提取速度鍵值

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> 
+1

你嘗試過這麼遠嗎?什麼不在你的代碼中工作?請分享您的代碼。 – wdosanjos

+0

在網站或本網站上搜索「.NET解析XML」。 – CodeCaster

+0

請再次閱讀該問題。我已經提到了我所嘗試過的。謝謝 – rumi

回答

1

請嘗試以下XPath。它爲您提供全部speeddeliveryFormat 1.您可以根據需要更改鍵值。

//availableFormat[deliveryFormat/@key='1']//speed 

或者,如果你只想速度鍵:

//availableFormat[deliveryFormat/@key='1']//speed/@key 

編輯:固定的XPath條件

+0

太棒了@wdosanosan。我很感謝你的回答,但並不真正理解這些標記這個問題無用或重複的人。 – rumi

相關問題