以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  xpath 查询问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=52302)


--  作者:Budded
--  发布时间:9/6/2007 2:57:00 PM

--  xpath 查询问题
http://community.csdn.net/Expert/TopicView3.asp?id=5746013

有一个头晕的xpath查询问题,
XML文件如下:
<root >
<a id="1"/ >
<a id="2"/ >
<a id="4"/ >
<b id="1"/ >
<b id="2"/ >
<b id="3"/ >
</root >

xpath如下:
root/b[@id=/root/a/@id]

用msxml(Delphi)解析(selectNodes)得到如下结果:
<b id="1"/ >
但是用xmlSpy解析得到另外一个结果:
<b id="1"/ >
<b id="2"/ >
我想得到的结果与xmlSpy一样,该怎么做?

[我测试过程中发现,在该xpath查询中@id总是与/root/a/@id中返回的第一个值来匹配,而不是/root/a/@id查询出来的结果集]


--  作者:Budded
--  发布时间:9/13/2007 1:01:00 PM

--  
居然没人回答,还是自己发现问题了,msxml3.0与4.0版本有这个区别,
--  作者:therainman
--  发布时间:9/23/2007 12:42:00 PM

--  
你好,xpath中关于"//"的用法,我在使用时怎么有问题
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xpath1.xsl"?>
<A id="a1">
  <B id="b1">
    <C id="c1">
      <B name="b">B1</B>
      <D id="d1"/>
      <E id="e1">e1</E>
      <E id="e2">e2</E>
    </C>
  </B>
  <B id="b2">B3</B>
  <C id="c2">
    <D id="d2">this's a D</D>
  </C>
  <E id="e3">e3</E>
</A>
xsl文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="//E"></xsl:value-of>
</xsl:template>
</xsl:stylesheet>
按道理应该遍历所有E元素,结果应该是:e1 e2 e3怎么实际运行结果是:e1
难道我代码有问题?谢谢!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.988ms