2013-02-03 3 views
0

данные XML:чтение значения из XML?

<LIST> 
    <TITLE>Item</TITLE> 
    <YEAR>2013</YEAR> 
    <NAME> 
    <NAME_ n="1">AB</NAME_> 
    <NAME_ n="2">CD</NAME_> 
    <NAME_ n="3">EF</NAME_> 
    <NAME_ n="4">GH</NAME_> 
    <NAME_ n="5">IJ</NAME_> 
    </NAME> 
    <PRICE> 
    <PRICE_ n="1">100</PRICE_> 
    <PRICE_ n="2">103</PRICE_> 
    </PRICE> 
    <AV> 
    <AV_ n="0">128,457</AV_> 
    <AV_ n="1">1,746,301</AV_> 
    <AV_ n="2">173,247</AV_> 
    <AV_ n="3">246,102</AV_> 
    </AV> 
    <PIC> 
    www.example.com/pictest.jpg 
    </PIC> 
    <URL>www.test.com/itemtest</URL> 
</LIST> 

я пытался с этим кодом:

XmlTextReader reader = new XmlTextReader(a); 
while (reader.Read()) 
{ 
    if (reader.Name == "AV") 
    { 
     label1.Text += reader.Value; 
    } 

Теперь я знаю, что мне нужна помощь с моим кодом, так как я не могу получить любой выход!
Как я могу прочитать значения из этого XML?

Любой может помочь мне получить все значение из этого XML? bcs Я очень новичок в xml и нуждаюсь в образце для начала работы! :(

+0

Любая причина вы хотите использовать 'XmlTextReader'? Можете ли вы просто загрузить его в «XDocument»? Было бы намного проще ... –

+0

Я очень новичок в XML, я не знаю, как я могу использовать его из «XDocument», можете ли вы дать мне образец или что-нибудь для этого XML? –

+0

Я собираюсь предположить, что вы хотели иметь место после «_». –

ответ

0

Вы найти родительский элемент и получить текстовое значение этого. Он не имеет значение текста, только один ребенок.

Попробуйте вместо

 XmlTextReader reader = new XmlTextReader(a); 
     while (reader.Read()) 
     { 
      if (reader.Name == "AV_") 
      { 
       label1.Text += reader.Value; 
      } 
+0

Мне нужна дополнительная помощь, чтобы получить всю ценность! Вы можете помочь? –

1

Чтобы получить все числовые значения и количество атрибутов от содержимого AV_ узла, используйте следующий скрипт:

string str = "..."; //xml contents go here 

var xml = XDocument.Parse(str); 

var values = xml.Descendants("AV_") 
       .Select(n => n.Attribute("n").Value + " : " + n.Value); 


values.ToList() 
     .ForEach(Console.WriteLine); 

печатает:

0 : 128,457 
1 : 1,746,301 
2 : 173,247 
3 : 246,102 

не забудьте добавить ссылку на Linq для XML имен using System.Xml.Linq

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