使用 xmlns 选择 XElements

发布于 2024-11-06 07:41:28 字数 702 浏览 4 评论 0原文

如何选择指定了 xmlns 的元素?我需要选择包含/片段元素。我尝试添加 http://schemas.microsoft.com/wix/2006/wi 在元素名称之前,但这不起作用。在 XmlDocument 中有 NamespaceManager 功能,但我在 XDocument 中没有看到相同的东西。那么如何选择带有 xmlns 的元素呢?

<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment/>
</Include>

我已经尝试过:

IEnumerable<XElement> Fragments = d.Element("Include").Elements("Fragment");

const string xmlns="http://schemas.microsoft.com/wix/2006/wi/";
IEnumerable<XElement> Fragments = d.Element(xmlns+"Include").Elements(xmlns+"Fragment");

How do you select an element with xmlns specified? I need to select Include/Fragment element. I've tried adding http://schemas.microsoft.com/wix/2006/wi before element names, but that doesn't work. In XmlDocument there was NamespaceManager functionality, but I don't see same stuff in XDocument. So how do I select an element with xmlns?

<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Fragment/>
</Include>

I've tried:

IEnumerable<XElement> Fragments = d.Element("Include").Elements("Fragment");

and

const string xmlns="http://schemas.microsoft.com/wix/2006/wi/";
IEnumerable<XElement> Fragments = d.Element(xmlns+"Include").Elements(xmlns+"Fragment");

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

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

发布评论

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

评论(2

眼泪淡了忧伤 2024-11-13 07:41:28

您只需将 xmlns 变量设置为 XNamespace(而不仅仅是字符串):

XNamespace xmlns = "http://schemas.microsoft.com/wix/2006/wi";

IEnumerable<XElement> Fragments = doc.Element(xmlns + "Include").Elements(xmlns + "Fragment");

那么它应该可以正常工作!

You just need to make your xmlns variable a XNamespace (instead of just a string):

XNamespace xmlns = "http://schemas.microsoft.com/wix/2006/wi";

IEnumerable<XElement> Fragments = doc.Element(xmlns + "Include").Elements(xmlns + "Fragment");

then it should work just fine!

人生戏 2024-11-13 07:41:28
XElement yourfile = XElement.Load("yourfile.xml");
IEnumerable<XElement> address =
    from el in yourfile.Elements("Include")
    where (string)el.Attribute("XElement") !=null
    select el;

我尝试在这里实现代码: http://msdn.microsoft.com/en -us/library/bb675197.aspx
它还将其转换为列表。希望有帮助

XElement yourfile = XElement.Load("yourfile.xml");
IEnumerable<XElement> address =
    from el in yourfile.Elements("Include")
    where (string)el.Attribute("XElement") !=null
    select el;

I tried to implement the code here: http://msdn.microsoft.com/en-us/library/bb675197.aspx
It also converts it to a list. Hope that helps

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