如何通过在 .NET 中提供子值来读取父 XML
本文关键字:读取 XML 何通过 NET | 更新日期: 2023-09-27 17:52:54
<?xml version="1.0" encoding="utf-8" ?>
<PrimaryLink>
<LinkID>p1</LinkID>
<SecondaryLink>
<LinkID>s1</LinkID>
<LeftMenu>
<NavLinks>
<LinkID>n1</LinkID>
</NavLinks>
<NavLinks>
<LinkID>n2 </LinkID>
</NavLinks>
</LeftMenu>
</SecondaryLink>
</PrimaryLink>
C#
var menuItems1 = from c in xMenuElement.Elements("GlobalNavigation").Elements("PrimaryLink")
select c;
我通过给出 n1 作为输入来p1->s1->n1
ans 喜欢什么
这里有一个解决方案。它不是很漂亮,但它可以做你想要的。
string xmlContent=@"<?xml version=""1.0"" encoding=""utf-8"" ?>
<PrimaryLink>
<LinkID>p1</LinkID>
<SecondaryLink>
<LinkID>s1</LinkID>
<LeftMenu>
<NavLinks>
<LinkID>n1</LinkID>
</NavLinks>
<NavLinks>
<LinkID>n2</LinkID>
</NavLinks>
</LeftMenu>
</SecondaryLink>
</PrimaryLink>";
XDocument doc = XDocument.Parse(xmlContent);
var targetNode = doc.Descendants().Where(p=>p.Value=="n1").FirstOrDefault();
string path = null;
if (targetNode!=null)
{
path=targetNode.AncestorsAndSelf().Elements("LinkID").Select(p => p.Value).Aggregate((i, j) => j + "=>" + i);
}
它将显示"p1=>s1=>n1">