2016-01-05 28 views
-1

另一個XML節點我有一些XML文檔中的節點。並且每個文檔都有不同的節點。唯一的共同之處是有_Header和_Table節點。我想要的是得到包含_Header和_Table節點的父節點。如何獲得包含在C#

enter image description here

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

_StatementofNetAssets_T1 
_StatementofNetAssets_T2 
_StatementofNetAssets_T3 

我怎樣才能做到這一點?

+0

一些實際的XML,而不是一個圖片將是有益的 - 它看起來會有涉及,這意味着可能提供的兩種答案將無法正常工作的命名空間。 –

+0

實際的XML是太混亂了,這就是爲什麼我沒有在這裏添加它 –

回答

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

我也爲u要求,但在第4行「類型‘System.NullReferenceException’未處理的異常發生在XmlToTable.exe 附加信息的錯誤:你調用的對象是空的。」 –

+0

@ShalinkaRandeniya你應該change'「表格/文檔」'代碼'XmlNodeList中節點列表= xmlDoc.SelectSingleNode(「表格/文件」)。ChildNodes'是在XML文件中的節點名稱。 – gdreamlend

1

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

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

您將需要這些命名空間

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