gpt4 book ai didi

xml - SelectNodes 返回 0 个元素

转载 作者:行者123 更新时间:2023-12-04 17:00:55 25 4
gpt4 key购买 nike

我对命名空间失去了理智。在遵循大多数关于如何使用 SelectNodes 的帖子之后,我终生无法弄清楚如何使用 SelectNodes。
我的xml:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<ComponentGroup Id="ProgramFiles">
<Component ..../>
<Component ..../>
<Component ..../>
我试过的:
 xnManager = new XmlNamespaceManager(doc.NameTable);
xnManager.AddNamespace("wx", "http://schemas.microsoft.com/wix/2006/wi");

//XmlNodeList aNodes = doc.SelectNodes("//wx:Wix/wx:Fragment/wx:ComponentGroup/Component", xnManager);

//var aNodes = doc.GetElementsByTagName("wx:Wix/Fragment/ComponentGroup/Component");

//System.Xml.XmlNodeList aNodes = doc.SelectNodes("//*[local-name()=\"Component\"]");
我错过了什么?所有结果都返回 0 个元素。文档有效并加载到文档中。

最佳答案

请尝试以下概念性示例。
它正在使用 LINQ 到 XML 应用程序接口(interface)。
c#

void Main()
{
XDocument xdoc = XDocument.Parse(@"<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Fragment>
<ComponentGroup Id='ProgramFiles'>
<Component>One</Component>
<Component>Two</Component>
<Component>Three</Component>
</ComponentGroup>
</Fragment>
</Wix>");

XNamespace ns = xdoc.Root.GetDefaultNamespace();
foreach (XElement xelem in xdoc.Descendants(ns + "Component"))
{
Console.WriteLine(xelem.Value);
}
}
输出
One
Two
Three

关于xml - SelectNodes 返回 0 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69692977/

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