LINQ to XML - 使用前缀访问后代

发布于 2024-10-28 19:50:57 字数 289 浏览 2 评论 0原文

我有一个像这样的示例 xml 文件

<vs:BioData>
<vs:Name>Name</vs:Name>
<vs:Address>address</vs:Address>
<vs:Zip>Zip</vs:zip>
</vs:BioData>

所有节点都有一个前缀值 vs ,谁能告诉我如何解析这个文件以读取名称和地址信息?我对 LINQ 很陌生。对此的任何帮助将不胜感激。

谢谢!

I have a sample xml file like this

<vs:BioData>
<vs:Name>Name</vs:Name>
<vs:Address>address</vs:Address>
<vs:Zip>Zip</vs:zip>
</vs:BioData>

All the nodes have a prefix value as vs and can anyone tell me how would I go about parsing this file to read Name and Address Information? I am very new to LINQ. Any help on this would be greatly appreciated.

Thanks!

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

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

发布评论

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

评论(3

长发绾君心 2024-11-04 19:50:57

您需要知道名称空间是什么。这将在前面声明,类似于:

xmlns:vs="http://some_url_here"

您可以使用 XNamespace 进行查询:

XNamespace vs = "http://some_url_here";
var names = doc.Descendants(vs + "Name")
               .Select(x => (string) x)
               .ToList();

这里的 + 实际上是将 XNamespace 和字符串转换为一个XName

You need to know what the namespace is. That will have been declared earlier, with something like:

xmlns:vs="http://some_url_here"

You can query using XNamespace:

XNamespace vs = "http://some_url_here";
var names = doc.Descendants(vs + "Name")
               .Select(x => (string) x)
               .ToList();

The + here is actually converting an XNamespace and a string to an XName.

花开雨落又逢春i 2024-11-04 19:50:57

前缀“vs”应映射到 XML 文档标头中的命名空间,例如:

<FooDocument xmlns:vs="http://schemas.example.com/vs">

然后您可以使用 XNamespace 通过 LINQ 选择这些元素,如下所示:

XNamespace vs = "http://schemas.example.com/vs";

var names = myXDoc.Root.Descendants(vs + "Name");

XNamespace 和 XName 类型都支持从字符串隐式转换。

The prefix "vs" should be mapped to a namespace in the header of the XML document, eg:

<FooDocument xmlns:vs="http://schemas.example.com/vs">

Then you can select those elements with LINQ by using an XNamespace, like this:

XNamespace vs = "http://schemas.example.com/vs";

var names = myXDoc.Root.Descendants(vs + "Name");

The XNamespace and XName types all support implicit conversion from strings.

挽清梦 2024-11-04 19:50:57

我知道这篇文章确实很旧,但想提供一些额外的信息。我在寻求有关更复杂的 xml 文件的帮助时被定向到这个问题和答案。我的 xml 有多个名称空间,并且也有嵌套的名称空间。我能够通过在此找到的建议解决我的问题 链接

很有帮助,想将其发布在这里,以防其他人遇到同样的问题

I know this post is really old but wanted to provide some additional information. I was directed to this question and answer while seeking help with a more complex xml file. My xml had several names spaces and had nested namespaces as well. I was able to solve my problem with the suggestions found at this link

It was great help and wanted to post it here in case someone else ran into the same problem

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