У меня есть файл xml, который выглядит так
<Name>AAA</Name>
<Age>23</Age>
<I1>
<Element1>A</Element1>
<Element2>B</Element2>
<Element3>C</Element3>
<\I1>
<I2>
<Element1>AA</Element1>
<Element2>BB</Element2>
<Element3>CC</Element3>
</I2>
Я читаю все значения элементов, используя xmlreader в С# 3.0. Но теперь мне нужно измениться, прочитав только значения в пределах определенного начального и конечного тегов. Для XML-файла, упомянутого выше, мне нужно прочитать <Name>
, <Age>
по умолчанию, а затем у меня есть функция, которая возвращает значение «I1» или «I2», которые в основном являются именами элементов. Если он возвращает «I1», тогда я должен читать только элементы между <I1>
и </I1>
и не должен читать <I2>
и наоборот. Таким образом, структура кода будет (только логика, пожалуйста, не обращайте внимания на синтаксические ошибки), например
/******function that returns element name I1 or I2*********/
string elementName = func(a,b);
xmlreader reader = reader.create("test.xml");
while(reader.read())
{
switch(reader.nodetype)
{
case xmlnodetype.element:
string nodeName = reader.name
break;
case xmlnodetype.text
switch(nodeName)
{
/*************Read default name and age values*******/
case "Name":
string personName = reader.value
break;
case "Age":
string personAge = reader.value;
break;
/*******End of reading default values**************/
/*** read only elements between the value returned by function name above
If function returns I1 then i need to read only values between <I1> </I1> else read </I2> and </I2>**/
}
}
}
Спасибо!
GetElementsByTagName
может помочь вам, или вы можете перебирать узлы элементов.. - person dotNETbeginner   schedule 17.10.2012