使用 XDocument 从简单 XML 元素(仅限根元素)中提取值

发布于 2025-01-07 03:09:23 字数 383 浏览 0 评论 0原文

我的 XML 看起来像这样:(来自网络服务)

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">36</int>

我需要获取 36,并尝试按如下方式执行:

Stream dataStream = response.GetResponseStream();
XDocument _xdoc = XDocument.Load(dataStream);    
return _xdoc.Element("int").Value;

但它找不到该元素。返回空值;

我的错误是什么?

发射机

My XML looks like this: (comes from a webservice)

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">36</int>

I need to get at the 36, and try to do it at follows:

Stream dataStream = response.GetResponseStream();
XDocument _xdoc = XDocument.Load(dataStream);    
return _xdoc.Element("int").Value;

But it can't find the element. returns a null value;

What is my mistake?

Tx

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

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

发布评论

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

评论(2

梦毁影碎の 2025-01-14 03:09:23

我假设您的 xml 字符串始终是一个节点..如您的代码中所示。你可以试试这个方法。

string xml = "<int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">36</int>";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            string val = doc.InnerText;

I assume your xml string is always one node..as in your code. You can try this way.

string xml = "<int xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">36</int>";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);
            string val = doc.InnerText;
一抹淡然 2025-01-14 03:09:23

您没有使用名称空间:

Stream dataStream = response.GetResponseStream();
XDocument _xdoc = XDocument.Load(dataStream);    
var ns = "http://schemas.microsoft.com/2003/10/Serialization/";
return _xdoc.Element(ns + "int").Value;

或者更简单,仅使用 XElement

Stream dataStream = response.GetResponseStream();
return XElement.Load(dataStream).Value;

You are not using the namespace:

Stream dataStream = response.GetResponseStream();
XDocument _xdoc = XDocument.Load(dataStream);    
var ns = "http://schemas.microsoft.com/2003/10/Serialization/";
return _xdoc.Element(ns + "int").Value;

Or simpler just using XElement:

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