XML 在没有 xpath 的情况下读取嵌套节点

问题描述 投票:0回答:1

我有以下 xml。

<?xml version="1.0"?>
<DataElement Name="Borrower">DocumentEntity="Borrower"|DataType="Table"|Value="
<Borrowers>
<Borrower1><Field1>Value="Value1"</Field1>
      <Field2>Value="Value2"</Field2>
</Borrower1>
<Borrower2>
        <Field1>Value="Value1"</Field1>
      <Field2>Value="Value2"</Field2>
</Borrower2>
</Borrowers>
"
</DataElement>

我正在尝试在另一个 xml 中获取 DataElement Borrower 的值,以便我可以使用它来进一步读取每个借用者节点数据。

我正在使用 XmlDocument childnodes 属性来获取内部的。但由于这又是一个嵌套的 xml,我无法理解如何获取它。请帮忙。

c# xml xml-parsing xmldocument
1个回答
0
投票

我已经以我认为有意义的方式修复了 XML,并向您展示了这个解决方案:

   static void Main(string[] _)
   {
       string s = "<?xml version=\"1.0\"?>\r\n<DataElement Name=\"Borrower\">\r\n<Borrowers>\r\n<Borrower1><Field1>Value=\"Value1\"</Field1>\r\n      <Field2>Value=\"Value2\"</Field2>\r\n</Borrower1>\r\n<Borrower2>\r\n        <Field1>Value=\"Value1\"</Field1>\r\n      <Field2>Value=\"Value2\"</Field2>\r\n</Borrower2>\r\n</Borrowers>\r\n </DataElement>";
                                   
       XDocument doc = XDocument.Parse(s);
       XElement root = doc.Root!;
       var borrowers = (from el in root.Elements("Borrowers")
                                          select el.Elements().ToList()).First().ToList();
       borrowers.ForEach(el =>
       {
           foreach (var item in el.Elements())            
               Console.WriteLine(el.Name + " - "+ item.Value.ToString());
       });
   }

我使用

Linq
选择
Borrowers
,然后对每个找到的
ForEach
执行
Borrower
,并再次对每个
Borrower
的项目进行循环。

© www.soinside.com 2019 - 2024. All rights reserved.