Как я могу извлечь блок XML из документа XML? - PullRequest
0 голосов
/ 22 июня 2010

Я хочу извлечь кусок 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 ]

2 голосов
/ 22 июня 2010

Вы пробовали с SelectSingleNode?

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

Посмотрите на XPath

Надеюсь, это поможет ...

PS: Извините, но я новичок здесьи не знаю редактора ...

1 голос
/ 22 июня 2010
XEelement root = xml document;
XElement first = root.Element("Root").Element("Container").Element("FirstNode");

Что-то в этом направлении, возможно, вам придется настроить вызовы Элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...