返回

C#-使用 LINQ 查询从复杂的 XML 文档中获取值

发布时间:2022-08-20 17:56:42 233
# flask
<?xml version="10" encoding="utf-8"?>
<FormSet xmlns="www.googlecom">
<FormHeader>
<FormSectionA>
  <Order>
    <Order02>Valuexxx</Order02>
    <OrderSubGroup>
      <Order03>Valuexxx</Order03>
      <Order03>Valuexxx</Order03>
      <Order04>Valuexxx</Order04>
      <Order05>Valuexxx</Order05>
    </OrderSubGroup>
    <OrderSubGroup>
      <Order03>Valuexxx</Order03>
      <Order03>Valuexxx</Order03>
      <Order04>Valuexxx</Order04>
      <Order05>Valuexxx</Order05>
    </OrderSubGroup>
    <OrderSubGroup>
      <Order03>Valuexxx</Order03>
      <Order03>Valuexxx</Order03>
      <Order04>Valuexxx</Order04>
      <Order05>Valuexxx</Order05>
    </OrderSubGroup>
    <Order08>Valuexxx</Order08>
    <OrderFinalGroup>
      <Order09>Valuexxx</Order09>
      <Order10>Valuexxx</Order10>
      <Order11>Valuexxx</Order11>
    </OrderFinalGroup>   
  </Order>
</FormSectionA>
</FormHeader>
</formset>

我一直在尝试从上述 xml 执行某种形式的 LINQ 查询。实际的 XML 比这更复杂,但我想如果我能弄清楚如何在底部找到 Order11 的值,我就能解决剩下的问题。我试图创建一个 XML 树,为整个 xml 文档创建类(这变得非常复杂,我认为我过于复杂了)

我登陆了以下内容

using System;

using System.Xml.Linq;

using System.Linq;

class test

{

static void Main()

{

    XDocument doc = XDocument.Load(@"test.xml");

    XNamespace googs = "http://www.google.com";

    string Str = (string)

    (from x in doc.Descendants(googs + "Order11")

     select x).First();

    Console.WriteLine(Str);

}

}

但是当我运行它时,它告诉我那里没有序列。我也尝试过不引用命名空间,但我觉得这是倒退了一步。

谢谢,我为这个常见问题道歉,所有替代解决方案都没有为我工作,我不知道为什么。我所需要的只是能够从这样一个有点复杂的 XML 文档中获取一个值,我的程序的其余部分就可以了。最终,该值将被传递到一个变量中以供其他工作完成,但所有这些都已经整理好。

真正的 XML 文档具有使每个子组唯一的属性,但我没有包括该属性,因为最终组始终具有唯一的名称,而这就是我所关心的。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像