xml取当前节点的前两个节点各后两个节点的问题

deninghe 2006-08-29 10:00:00
有一个如下的xml文档:
<?xml version="1.0" encoding="gb2312"?>
<root>
<pname id="10Ef">
<name>雪菲美</name>
</pname>
<pname id="1Dt2">
<name>雪菲美</name>
</pname>
<pname id="1236">
<name>雪菲美</name>
</pname>
<pname id="A569">
<name>雪菲美</name>
</pname>
<pname id="C6985">
<name>雪菲美</name>
</pname>
<pname id="T14f">
<name>雪菲美</name>
</pname>
</root>
用XMLDOM操作时
dim pid,w
pid="1236"
w=w="//pname[@id='"&pid&"']"
set obj=xml.documentElement.selectSingleNode(w)
name=obj.childnodes(0).text'得到名称
=========
如果我想同时取得pid="1236"节点的前两个节点 及后两个节点 用xmldom应该如何操作呢
请高手指教(注意pid是随机的)
...全文
228 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds27 2006-08-30
  • 打赏
  • 举报
回复
dim pid,w
pid="1236"
w="//pname[@id='"&pid&"']"
set obj=xml.documentElement.selectSingleNode(w)
set objs=xml.documentElement.selectNodes("//pname")
for ...
if obj=objs[i] then
就是这个i,退出循环
end if
next

取出这个i的-2和+2节点。
hustsay23 2006-08-30
  • 打赏
  • 举报
回复
这个是取该节点后面的2个节点
XmlNodeList x = dom1.SelectNodes("/root/pname[@id='1236']/following-sibling::pname[position() < 3]");

取前两个节点:
XmlNodeList x = dom1.SelectNodes("/root/pname[@id='1236']/preceding-sibling::pname[position() < 3]");

两个一合就是的了
cubit 2006-08-29
  • 打赏
  • 举报
回复
1.先判断PID所在节点position
2.然后执行PID所在position,加2减2操作.
3.xmldom也是可以使用XPATH的.

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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