【问题标题】:Convert/Cast XNode to XDocument将 XNode 转换/转换为 XDocument
【发布时间】:2014-01-17 10:00:55
【问题描述】:

对于许多人来说,这可能是一个非常简单的问题,但我想知道如何将 XNode 转换为 XDocument。该方法需要一个 XDocument,但由于它是针对特定元素的,因此我需要循环,如下所示。然后它会导致它将是一个无效的 XNode。

Dim xDoc = XDocument.Parse(oXMLResponse)
For Each item In xDoc.Descendants().Nodes()
   ParseXmlToObject(item)
next

【问题讨论】:

  • 是否有机会将此方法转换为接受 XNode 而不是 XDocument?
  • 我相信这可以完成(通过强制转换),因为 XDocument 继承了 XNode,反之亦然。
  • @SergeyBerezovskiy 我听从了您的建议并将其更改为 XElement,因为我有一个需要这样做的案例。谢谢你的建议。

标签: .net xml vb.net linq-to-xml


【解决方案1】:

对不起我的 C#,不是 VB。您可以尝试在循环中创建一个新的 XElement:

XElement xElem = new XElement(item.Name, item.InnerXml);
XElement[] xElemArray = new XElement[1];
xElemArray[0] = xElem;

然后你得到了一个 XDocument:

XDocument xDoc = new XDocument(xElemArray);

但这不是一个有效的解决方案!

【讨论】:

  • 您说的完全正确,因此我决定更改方法以接受 XElement,这样我肯定会遇到问题。
  • 这一定是一个更好的解决方案是的!很高兴您通过 Sergey 的评论和这个答案找到了解决方案。
猜你喜欢
  • 2010-09-18
  • 2010-10-19
  • 1970-01-01
  • 2014-08-08
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多