2014-02-13 11 views
0

Из нижеприведенного XML, как мы можем извлечь значения «ключевых значений скорости» на основе заданного параметра доставки. например Значения скорости для доставки. Символьная клавиша = 1 - 2,3,4 и для доставки. Символьная клавиша = 4 - 5,6,4Как извлечь значения атрибутов xml на основе условия с использованием Xpath или/и C#

Следующий код дает мне ключи для доступных форматов и на основе этих ключей я хочу извлечь скорость ключевых значений

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 parse XML». – CodeCaster

+0

Пожалуйста, прочитайте вопрос еще раз. Я упомянул о том, что я пробовал. спасибо – rumi

ответ

1

Пожалуйста, попробуйте следующее XPath. Он дает вам все speed для deliveryFormat 1. Вы можете изменить значение ключа по мере необходимости.

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

Или, если вы хотите только ключи скорости:

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

EDIT: Fixed XPATH условный

+0

Awesome @wdosanjos. Я ценю ваш ответ, но на самом деле не понимаю этих ребят, которые отмечают этот вопрос не полезными или дублирующими. – rumi

Смежные вопросы