如何从 XDocument 中提取特定元素?

发布于 2024-08-24 06:49:03 字数 406 浏览 4 评论 0原文

我有以下 XDocument:

<SomeDoc Id="73" Protocol="rahrah" xmlns="http://schemas.company.com/rah/rah2/2005/">
  <Prop1>11111</Prop1> 
  <Prop2>77777</Prop2> 
  <Prop3>88888</Prop3> 
</SomeDoc>

我想提取 Prop1 中的值。

我使用以下代码:

var prop1 = xml.Element("Prop1");

但是 prop1 被设置为 null。我是否试图正确提取元素?

I have the following XDocument:

<SomeDoc Id="73" Protocol="rahrah" xmlns="http://schemas.company.com/rah/rah2/2005/">
  <Prop1>11111</Prop1> 
  <Prop2>77777</Prop2> 
  <Prop3>88888</Prop3> 
</SomeDoc>

And I want to extract the value in Prop1.

I use the following code:

var prop1 = xml.Element("Prop1");

But prop1 is being set to null. Am I trying to extract the element correctly?

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

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

发布评论

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

评论(2

人事已非 2024-08-31 06:49:03

我假设 xmlXDocument 对象本身。

XDocument 对象包含根元素,而不是其子元素。您需要编写 xml.Root.Element("Prop1");

编辑:您还需要包含名称空间,如下所示:

XNamespace ns = "http://schemas.company.com/rah/rah2/2005/";
xml.Root.Element(ns + "Prop1");

I'm assuming that xml is the XDocument object itself.

An XDocument object contains the root element, not its children. You need to write xml.Root.Element("Prop1");.

EDIT: You also need to include the namespace, like this:

XNamespace ns = "http://schemas.company.com/rah/rah2/2005/";
xml.Root.Element(ns + "Prop1");
无敌元气妹 2024-08-31 06:49:03

您可以发布用于填充 xml 变量的代码吗?

我的疯狂猜测是 XDocument 没有将 xml 片段识别为有效文档。我认为 XDocument 需要 根节点。您可能需要使用 XmlTextReader 而不是 XDocument。

Could you post the code that you are using to populate the xml variable?

My wild guess is that XDocument is not recognizing the xml fragment as a valid document. I think that XDocument is expecting the <?xml version="1.0"?> root node. You might need to use XmlTextReader instead of XDocument.

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