如何读取另一个xml标签内的标签?
示例:
<site id = "1" clas = "black"><test> Value </test></site>
我想读取<site>
中的测试标签。我想返回里面的东西。
我的代码:
XmlReader xmlReader = XmlReader.Create("site.xml");
while (xmlReader.Read())
{
if ((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == "site"))
{
if (xmlReader.HasAttributes)
{
string test = xmlReader.GetAttribute("id");
Console.WriteLine(test);
}
}
}
答案 0 :(得分:0)
您应该使用System.Xml.Linq.XElement
API:
using (Stream s = File.OpenRead("sites.xml")) {
XElement sites = XElement.Load(s);
foreach (XElement test in sites.Elements()) {
// test is now your inner node
}
}
如果您坚持使用XmlReader
,则可以使用ReadSubTree()
。参见此example。
答案 1 :(得分:0)
您可以使用
XMLNodeList
像下面一样
var doc = new XmlDocument();
doc.Load(sites.xml);
XmlDocument xml = new XmlDocument();
xml.LoadXml(doc.DocumentElement.OuterXml.ToString());
XmlNodeList xnList = xml.SelectNodes("/site/test");
foreach (XmlNode xn in xnList)
{
if (xn["name"].InnerText == "test")
{
string testvalue = xn["test"].InnerText;
}
}