一直在寻找答案,但找不到任何东西 - 我很新,所以也许我没有找到正确的关键词?
这是我正在使用的 XML 示例
<database>
<book>
<title>A</title>
<author>
<name>1</name>
</author>
</book>
<book>
<title>B</title>
<author>
<name>2</name>
</author>
<author>
<name>3</name>
</author>
<author>
<name>4</name>
</author>
<author>
<name>5</name>
</author>
</book>
</database>
我正在尝试使用 C# XMLDocument 来获取 A 书作者 1,然后获取 B 书作者 1、2、3、4、5
到目前为止,我正在使用的代码是遍历所有作者,所以我得到书 A author 1、2、3、4、5
我到目前为止的代码大致如下
XmlDocument doc = new XmlDocument();
doc.Load("myxmlfile");
XmlNode root = doc.SelectSingleNode("database");
XmlNodeList nodelist = root.SelectNodes("book");
foreach (XmlNode n in nodelist)
{
XmlNodeList authors = root.SelectNodes(".//author");
book.authorstring = "";
foreach (XmlNode author in authors)
{
book.authorstring = book.authorstring+author.SelectSingleNode("name").InnerText + ", ";
}
}
我读到了一些地方,如果我在“ // ”之前使用“ . ”,它将“锚定”到当前节点,但它似乎没有工作并且正在循环遍历所有节点
我做错了什么或错过了什么?