使用 XPath 从 XElement 读取包括文本和节点的子节点?林Q

发布于 2024-12-13 07:50:58 字数 531 浏览 3 评论 0原文

使用通过 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>";

当您有 XElement 变量时,相当于在 LinQ 中执行上述执行。我在 XElement 中看到 XPathSelectElement 方法,但它不返回子节点 + 子节点文本。有什么想法吗?

Using old way of doing via 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>";

what is the equivalent of doing the above execution in LinQ when you have XElement variable. I see XPathSelectElement method in XElement but it doesn't return the child nodes + Child nodes text. Any Ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿哥们儿 2024-12-20 07:50:58

我根本不会为此使用 XPath。我会使用:

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

给出 profile 节点及其所有后代。目前尚不清楚您要对结果做什么,但如果您可以提供更多详细信息,我应该能够提出适当的代码。

I wouldn't use XPath at all for this. I'd use:

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

That give the profile nodes and all their descendants. It's not really clear what you're trying to do with the results, but if you can give more details I should be able to come up with the appropriate code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文