Как я могу извлечь блок 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: Извините, но я новичок здесь и не знаю редактора...
XEelement root = xml document;
XElement first = root.Element("Root").Element("Container").Element("FirstNode");
Что-то в этом духе, возможно, вам придется настроить вызовы Элемента.