gpt4 book ai didi

c# - Xml 节点的 Xml 后代

转载 作者:太空宇宙 更新时间:2023-11-03 12:14:38 28 4
gpt4 key购买 nike

这里是一个简化的mxl结构'xml',

<store>

<book_1>
<author_1><name>Alice</name><age>30</age></author_1>
<author_2><name>Bob</name><age>31</age></author_2>
<book_1>
<author_1><name>Charley</name><age>29</age></author_1>
<author_2><name>Dory</name><age>25</age></author_2>
<book_1>
</store>

这是我尝试过的;

 XmlDocument submission = new XmlDocument();
submission.LoadXml(xml);
var bookNodes = submission.SelectNodes("//*[starts-with(local-name(),'book_')]");

这给了我一个书单。

 foreach (XmlNode book in bookNodes)
{
//I want to do something like to find book authors for the book in context e.g. for the first book I just want nodes for Alice and Bob.
// var bookAuthors = book.SelectNodes("decendants::[starts-with(local-name(),'author_')");

}

我怎样才能开始检查后代元素?

编辑:好像打错了...

var bookAuthors = book.SelectNodes("descendant::*[starts-with(local-name(),'MeritCriterion_')]");

最佳答案

您可以使用以下 XPath 语法访问您的后代节点:

XmlDocument submission = new XmlDocument();
submission.LoadXml(xml);

var bookNodes = submission.SelectNodes("//*[starts-with(local-name(),'book_')]");

foreach (XmlNode book in bookNodes)
{
var author = book.SelectNodes("descendant::*[starts-with(local-name(),'author_')]");

foreach (XmlNode authorInfo in author)
{
Console.WriteLine(authorInfo .InnerText);
}
}

简而言之,您需要访问 descendant::(all)[starts-with] 否则您只是试图访问您的 XPath 中的任何后代。 :)

关于c# - Xml 节点的 Xml 后代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50402395/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com