如何在c#中获取包含其他xml节点的节点

时间:2016-01-05 07:28:35

标签: c# xml

我有几个xml文档。每个文档都有不同的节点。唯一常见的是它有_Header和_Table节点。我想要的是获取包含_Header和_Table节点的父节点。

enter image description here

我希望程序输出以下节点:

_StatementofNetAssets_T1
_StatementofNetAssets_T2
_StatementofNetAssets_T3

我该怎么做?

2 个答案:

答案 0 :(得分:1)

XmlDocument xmlDoc=new XmlDocument(); 
string xmlname=Server.MapPath("*.xml").ToString();
xmlDoc.Load(xmlname); 
XmlNodeList    nodeList=xmlDoc.SelectSingleNode("form/Documents").ChildNodes;//get all child nodes
foreach(XmlNode xn in nodeList) 
{ 
  XmlElement xe2=(XmlElement)xn;

  if(xe2.InnerText=="_Header"||xe2.InnerText=="_Table nodes")
  {
    XmlNode xn3=xn.ParentNode; 
    XmlElement xe=(XmlElement)xn3; 
    Console.WriteLine(xe.InnerText);
   }
} 

答案 1 :(得分:1)

您可以使用XDocument课程和XPath快速解析文档

var elements = XDocument.Load(path).XPathSelectElements("//_Header").Select(q => q.Parent);

您将需要这些名称空间

using System.Linq;
using System.Xml.XPath;