C# 如何访问内部XML标记?
我有以下XML文件:C# 如何访问内部XML标记?,c#,xml,xpath,C#,Xml,Xpath,我有以下XML文件: <ChangeInfo > <Overview name="UML1" > <Property name="actor1" value="1" /> <Overview name="UML2" > <Property name="actor2" value="2" /> </Overview>
<ChangeInfo >
<Overview name="UML1" >
<Property name="actor1" value="1" />
<Overview name="UML2" >
<Property name="actor2" value="2" />
</Overview>
</Overview>
</ChangeInfo>
我尝试使用以下C#代码访问主节点中的所有嵌套节点:
我想访问
及其子项
我的代码:
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\Users\Administrator\Downloads\xxml\xxml\xml_file\uml.xml");
XmlNode targets = doc.SelectSingleNode("/ChangeInfo/Overview");
IEnumerator s = targetlist.GetEnumerator();
while (s.MoveNext())
{
XmlNode x = (XmlNode)(s.Current);
XmlNodeList ch = x.ChildNodes;
for (int i = 0; i < ch.Count; i++)
{
String att = "";
if (ch[i].Attributes != null)
{
for (int j = 0; j < ch[i].Attributes.Count; j++)
{
att += " "+ch[i].Attributes[j].Name + " " + ch[i].Attributes[j].Value;
}
textBox1.Text += "\r\n" + att ;
}
}
}
XmlDocument doc=新的XmlDocument();
doc.Load(@“C:\Users\Administrator\Downloads\xxml\xxml\xml\u file\uml.xml”);
XmlNode targets=doc.SelectSingleNode(“/ChangeInfo/Overview”);
IEnumerator s=targetlist.GetEnumerator();
而(s.MoveNext())
{
xmlnodex=(XmlNode)(s.Current);
XmlNodeList ch=x.ChildNodes;
对于(int i=0;i
但我仍然无法访问
及其子项
我不是C人,但我在谷歌上搜索了“C#xpath”,找到了以下页面:
您可以使用以下XPath访问所需的XmlNode:
//Overview[@name/string() = 'UML2']
:
我希望这会有所帮助。洛伦是正确的
但是今天的现代.net有一个更简单的方法
var document = XDocument.Load(@"C:\Users\Administrator\Downloads\xxml\xxml\xml_file\uml.xml");
var element = document.XPathSelectElement("//Overview[@name='UML2']");
你到底想完成什么?
var document = XDocument.Load(@"C:\Users\Administrator\Downloads\xxml\xxml\xml_file\uml.xml");
var element = document.XPathSelectElement("//Overview[@name='UML2']");