以文本方式查看主题

-  计算机科学论坛  (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=51940)


--  作者:Fade
--  发布时间:8/29/2007 11:54:00 AM

--  [求助]请问一个xpath
<Root>
    <A>
        <A>
            .....
        </A>
        <A></A>
    </A>
    <A>
        <A></A>
    </A>
    <B>
        <A></A>
    </B>
</Root>

对于如上的xml,想找出所有A元素但不包括B下面的,应该怎么写
我想用 Root/A | Root/A//A, 但是不确定对于这样的xpath,结果集的顺序是怎样的,因为我想要保持元素在文档中出现的前后顺序


--  作者:Fade
--  发布时间:8/29/2007 11:56:00 AM

--  
怎么有广告贴?论坛自己搞的?
--  作者:Budded
--  发布时间:9/6/2007 3:13:00 PM

--  
没人回答,我来帮你,
//A[not(ancestor::B)]
--  作者:hongjuesir
--  发布时间:9/10/2007 12:03:00 AM

--  
/Root/B/A/preceding::*
应该也可以
--  作者:lxdlzd
--  发布时间:9/21/2007 1:01:00 AM

--  
//A这样吧!
--  作者:therainman
--  发布时间:9/23/2007 12:37: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
难道我代码有问题?那位高手能帮一下,谢谢!
--  作者:Qr
--  发布时间:9/23/2007 12:44:00 PM

--  
慢慢体会吧
<xsl:template match="/">
<xsl:apply-templates  select="//E"/>
</xsl:template>

<xsl:template match="E">
<xsl:value-of select=".">
</xsl:template>


--  作者:therainman
--  发布时间:9/23/2007 12:49:00 PM

--  
严重感谢Qr!谢谢!
新手什么都不知道,但是我觉得这些xpath的资料好像说的不明白,还是我自己的原因?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms