簡體   English   中英

如何在C#中獲取包含另一個xml節點的節點

[英]how to get the nodes which contain another xml nodes in c#

我有幾個xml文件。 每個文檔都有不同的節點。 唯一常見的是它具有_Header和_Table節點。 我想要的是獲取包含_Header和_Table節點的父節點。

在此處輸入圖片說明

我希望程序輸出以下節點:

_StatementofNetAssets_T1
_StatementofNetAssets_T2
_StatementofNetAssets_T3

我怎樣才能做到這一點?

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);
   }
} 

您可以使用XDocument類和XPath快速解析您的文檔

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

您將需要這些名稱空間

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM