gpt4 book ai didi

c# - 将 XmlElement 转换为具有元素 ("ElementName"的 XElement ) 返回无结果

转载 作者:行者123 更新时间:2023-12-04 05:50:18 24 4
gpt4 key购买 nike

我正在使用以下代码来转换 XmlElementXElement

public staic XElement ToXElement(this XmlNode node) {
XElement element = null;
if (null != node) {
element = XElement.Parse(node.OuterXml);
}
return element;
}

但是,当我调用 Elements()Elements("ElementName")我没有得到任何结果。
但是,我确实通过调用 Nodes() 得到结果.

为什么元素不是通过调用 Elements 出来的,这两种方法有什么区别?

这是我正在解析的 xml 的片段。
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementFile Location="Path/file.xml"/>
</ElementManifests>
</Feature>

最佳答案

您可能没有正确使用命名空间。这两种方法都适合我:

XElement root = XElement.Load("test.xml"); //or result of ToXElement
foreach(var item in root.Elements())
{
Console.WriteLine(item.Name);
}

XNamespace ns = "http://schemas.microsoft.com/sharepoint/";
var manifestsNode = root.Element(ns + "ElementManifests");

鉴于您不知道 Elements() 之间的区别(获取所有直系子女)和 Element() (获取一个特定的直接子元素)您应该从 Linq to Xml 教程开始。

关于c# - 将 XmlElement 转换为具有元素 ("ElementName"的 XElement ) 返回无结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com