XML文件结构是这样的。
<?xml version="1.0" encoding="UTF-8"?>
<Application>
<Tabs>
<Tab name="1">
<title>abcd</title>
<description>xyz</description>
</Tab>
<Tab name="2">
<title>abcde</title>
<description>xyzw</description>
</Tab>
</Tabs>
<Files>
</Files>
</Application>
我想在asp.net 2.0中使用XmlReader只读取Tabs部分。我感兴趣的值是标题和描述内容。总共有7个标签可以在以后增加。因此,不能迭代固定值的count变量。
答案 0 :(得分:0)
如果你可以使用XPathDocument
,你可以尝试这样的事情。
注意:如果您已经拥有XmlReader
实例,而不是使用StringReader
,则可以使用带XmlReader
的构造函数重载。
string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?>
<Application>
<Tabs>
<Tab name=""1"">
<title>abcd</title>
<description>xyz</description>
</Tab>
<Tab name=""2"">
<title>abcd</title>
<description>xyzw</description>
</Tab>
</Tabs>
<Files>
</Files>
</Application>";
string xpath = "/Application/Tabs/Tab/description";
XPathDocument doc = new XPathDocument(new StringReader(xml));
XPathNavigator nav = doc.CreateNavigator();
XPathNodeIterator nodeIterator = nav.Select(xpath);
foreach (XPathNavigator item in nodeIterator)
{
Console.WriteLine(item.Value);
}
答案 1 :(得分:0)
using (XmlReader reader = XmlReader.Create(inputUrl))
{
reader.MoveToContent();
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == elementName)
{
XElement el = XNode.ReadFrom(reader) as XElement;
}
}
}
}
}
}