如何解决通过XmlNodeList进行迭代,值始终相同
| 我有以下XML:<xmlRequest>
<stats>
<match mid=\'40704828\'>
<match_stats>
<ms aid=\'254664\' cli_name=\'Hero_Engineer\'>
<stat name=\'nickname\'>lethallynx</stat>
<stat name=\'level\'>11</stat>
</ms>
<ms aid=\'354522\' cli_name=\'Hero_Devourer\'>
<stat name=\'nickname\'>AbendrothA</stat>
<stat name=\'level\'>12</stat>
</ms>
</match_stats>
</match>
</stats>
</xmlRequest>
我正在尝试使用以下代码提取nickName和level的值:
XmlNodeList nodeList = doc.SelectNodes(\"//ms\");
List<string> myList = new List<string>();
foreach (XmlNode node in nodeList)
{
XmlNode nodeNickName = node.SelectSingleNode(\"//stat[@name=\'nickname\']/text()\");
mylist.Add(nodeNickName.Value);
}
问题是,虽然我可以看到节点对象正在用下一组数据更新,但返回的值始终与第一个昵称相同。
因此,nodeNickName.Value始终等于\“ lethallynx \”。
有任何想法吗?
解决方法
//stat[@name=\'nickname\']/text()
xpath查询中的ѭ2select选择根节点并从那里向下搜索。
您应将其替换为./
,以从当前节点开始的搜索为./stat[@name=\'nickname\']/text()
。
,在您的foreach
中尝试:
string nickname = node.SelectSingleNode(\"stat[@name=\'nickname\']\").InnerText;
mylist.Add(nickname);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。