2010-06-22 48 views
0

我想從更大的XML文檔中提取一大塊XML。 例如,我的XML文檔看起來像這樣如何從XML文檔中提取XML塊?

<?xml version="1.0" encoding="utf-8"?> 
<Root> 
<CONTAINER> 
    <FIRSTNODE> 
     <CHILDNODE> 
     </CHILDNODE> 
    </FIRSTNODE> 
</CONTAINER> 
</Root> 

如果我想提取任何部分。例如,我希望提取包含屬性標記和值的所有內容,我應該如何在C#中執行此操作?

我試過使用這段代碼,但它似乎沒有做到這一點。

 XmlDocument xdoc = new XmlDocument(); 
    xdoc.LoadXml(inputXML); 
    Console.WriteLine(inputXML); 
    string strOut = ""; 

    XmlNode node = xdoc.DocumentElement.ParentNode; 
    XmlNodeList nodeList = node.ChildNodes; 
    for (int n = 0; n < nodeList.Count; n++) 
    { 
     Console.WriteLine(nodeList[n].Name); 
     if (nodeList[n].Name == "FIRSTNODE") 
     { 
      strOut = nodeList[n].OuterXml.ToString(); 
      Console.WriteLine(strOut.Length.ToString()); 
      return strOut; 
     } 
    } 

回答

2

您是否試過SelectSingleNode?

XmlNode n = xdoc.SelectSingleNode("//FIRSTNODE");  
Console.WriteLine(n.OuterXml); 

看一看XPath的

希望這有助於...

PS:很抱歉,但我是新來的,不知道編輯器...

1
XEelement root = xml document; 
XElement first = root.Element("Root").Element("Container").Element("FirstNode"); 

沿着這條線的東西,你可能需要調整元話費。