我有一个看起来像的 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>
我正在使用 C# 3.0 中的 xmlreader 读取元素的所有值。但是现在我必须通过仅读取特定开始和结束时间中的值来进行更改。对于上面提到的 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>**/
}
}
}
谢谢!