我有以下 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,我无法理解如何获取它。请帮忙。
我已经以我认为有意义的方式修复了 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
的项目进行循环。