求问xpath高手. 这个查询怎么解决

moonlightme 2012-08-06 05:53:03
我有一个XML的字符串. 大概是这样

<node>
<parentNode>
<id>1</id>
<name>a</name>
<list>
<listid>0001</listid>
<listname>adsf</listname>
</list>
</parentNode>
<parentNode>
<id>2</id>
<name>a</name>
<list>
<listid>0002</listid>
<listname>adsf</listname>
</list>
<list>
<listid>8798</listid>
<listname>adsf</listname>
</list>
</parentNode>
<parentNode>
<id>3</id>
<name>a</name>
<list>
<listid>0003</listid>
<listname>adsf</listname>
</list>
<list>
<listid>0505</listid>
<listname>adsf</listname>
</list>
</parentNode>
</node>


我现在做的是这个.

XPathNavigator xPathNav = doc.CreateNavigator();
XPathNodeIterator parent= xPathNav.Select("//parentNode");
while(parent.moveNext())
{
XPathNavigator listNode= parent.Current;
XPathNodeIterator id= xpnProduct.Select("//list");
while(id.moveNext())
{
XPathNavigator proNav = id.Current;
string x = id.SelectSingleNode(listid);
}
}


就是说我要取出全部的parent节点, 然后在每次循环的时候取出里面list节点中的listid. 这个写法应该是有问题,因为每次id这个对象取出来的都是文档全部的list节点, 而不是当前循环中的当前parent节点下的list节点. 我应该怎么做才能在每次循环中取出当前对象中的全部list节点
...全文
130 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝶恋花雨 2012-08-06
  • 打赏
  • 举报
回复

string resHtml = @"<node><parentNode> <id>2</id> <name>a</name><list>
<listid>0002</listid><listname>adsf</listname></list><list> <listid>8798</listid>
<listname>adsf</listname></list></parentNode></node>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(resHtml);
XmlNodeList xnl = xmlDoc.SelectNodes("/node/parentNode");
XmlNodeList linkNOdes = xnl[0].SelectNodes("list");
foreach (XmlNode linkNode in linkNOdes)
{
foreach (XmlNode xn2 in linkNode.ChildNodes)
{
if (xn2.Name == "listid")
{
string name = xn2.InnerText;
Response.Write("listid" + name + "<br/>");
}
if (xn2.Name == "listname")
{
string name = xn2.InnerText;
Response.Write("listname"+name+"<br/>");
}
}
}

输出
listid: 0002
listname: adsf
listid: 8798
listname: adsf
iyomumx 2012-08-06
  • 打赏
  • 举报
回复
用 parentNode/list/listid 取出所有的listid节点再循环取这些节点的值不行吗

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧