Читать дочерние узлы, включая текст и узлы, используя XPath из XElement? LinQ - PullRequest
1 голос
/ 31 октября 2011

Используя старый способ выполнения через XmlDocument,

string xmlstring = "<root><profile><Name>John</Name><Age>23</Age></profile></root>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlstring);
string childNodes = xmlDoc.SelectSingleNode("root/Profile").InnerXml;

// output of childNodes would be => "<Name>John</Name><Age>23</Age>";

, что эквивалентно выполнению вышеуказанного выполнения в LinQ, когда у вас есть переменная XElement.Я вижу метод XPathSelectElement в XElement, но он не возвращает дочерние узлы + текст дочерних узлов.Есть идеи?

1 Ответ

3 голосов
/ 31 октября 2011

Я бы вообще не использовал XPath для этого. Я бы использовал:

XDocument doc = XDocument.Parse(xmlString);
var nodes = doc.Root
               .Elements("profile")
               .DescendantsAndSelf();

Это дает profile узлы и все их потомки. Не совсем понятно, что вы пытаетесь сделать с результатами, но если вы сможете дать больше подробностей, я смогу придумать соответствующий код.

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