如何提取 XDocument 变量的 XML 内容?

发布于 2024-09-27 02:39:37 字数 291 浏览 3 评论 0原文

我在 XDocument 变量中拥有完整的 XML 文件,该文件是从某些 API 获取的,如下所示,

using (var reader = XmlReader.Create("website"))
        {
            doc = XDocument.Load(reader);
        }

我需要获取 XML 的结构并浏览其节点,但通过 XDocument 变量,我只能在一个节点中获取整个文档,并且无法单独提取每个节点。那么有什么解决方案或者我应该使用其他方法吗?

I have the a full XML file in an XDocument variable which I get from some API like this

using (var reader = XmlReader.Create("website"))
        {
            doc = XDocument.Load(reader);
        }

I need to get the structure of the XML and navigate through its nodes, but through the XDocument variable, I only get the whole document in one node and can not extract each node by itself. So any solution or shall I use another way?

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

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

发布评论

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

评论(4

倚栏听风 2024-10-04 02:39:37

http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx
是一篇关于构建它的好文章,

您也可以使用 linq 来查询它,

例如

var loaded = XDocument.Load("sdaf");
var q = from c in loaded.Descendants("contact")
        where (int)c.Attribute("contactId") < 4
        select (string)c.Element("firstName") + “ “ +
      (string)c.Element("lastName");

从我上面链接到的页面上取下。

在我看来,XDocument 和 XElement 对象非常棒。
如果你不喜欢它们,那就去学习 xpath 和 xslt。

http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx
is a good article on building it up

you can also use linq to query it

for instance

var loaded = XDocument.Load("sdaf");
var q = from c in loaded.Descendants("contact")
        where (int)c.Attribute("contactId") < 4
        select (string)c.Element("firstName") + “ “ +
      (string)c.Element("lastName");

taken off the page i linked to above.

The XDocument and XElement objects kick ass in my opinion.
If you dont like them then go learn xpath and xslt.

浅唱ヾ落雨殇 2024-10-04 02:39:37

要获取 XDocument 的直接子节点,您可以尝试

    using (var reader = XmlReader.Create("website"))
    {
        var doc = XDocument.Load(reader);
        var childElements = doc.Elements();
    }

然后进行进一步处理,例如 childElements.Descendants("name").Single().Value

To obtain the immediate child nodes of your XDocument you can try

    using (var reader = XmlReader.Create("website"))
    {
        var doc = XDocument.Load(reader);
        var childElements = doc.Elements();
    }

Then do further processing such as childElements.Descendants("name").Single().Value.

转角预定愛 2024-10-04 02:39:37
string xml = reader.ReadToEnd();

XmlDocument thisXmlDoc = new XmlDocument();
thisXmlDoc.LoadXml(xml); // In your case DOC

reader.Close();

XPathNavigator thisNavigator = thisXmlDoc.CreateNavigator();
XPathNodeIterator dossierNodes = thisNavigator.Select("Nodename/node");

List<Dossier> thisList = GetDossiers(dossierNodes);
thisDossierList = thisList.OrderBy(c => c.something).ToList();

他使用的是 XDocument 对象,而不是 XMLDocument 对象。 – John Nicholas 52 秒前

该死,你是对的。对不起!只是试图帮助...

string xml = reader.ReadToEnd();

XmlDocument thisXmlDoc = new XmlDocument();
thisXmlDoc.LoadXml(xml); // In your case DOC

reader.Close();

XPathNavigator thisNavigator = thisXmlDoc.CreateNavigator();
XPathNodeIterator dossierNodes = thisNavigator.Select("Nodename/node");

List<Dossier> thisList = GetDossiers(dossierNodes);
thisDossierList = thisList.OrderBy(c => c.something).ToList();

he is using XDocument objects, not XMLDocument objects. – John Nicholas 52 secs ago

Damn, you're right. Sorry! Only tried to help...

疾风者 2024-10-04 02:39:37
XmlDocument xdoc;
xdoc = new XmlDocument();
xdoc.Load(XmlReader.Create("weblink"));

无法分析 XDocument 并提取其 XML 值,而这在 XmlDocument 中是可能的

XmlDocument xdoc;
xdoc = new XmlDocument();
xdoc.Load(XmlReader.Create("weblink"));

The XDocument is not possible to be analyzed and extract its XML values which is possible in XmlDocument

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