+ -
当前位置:首页 → 问答吧 → 问个"//"的用法

问个"//"的用法

时间:2005-08-30

来源:互联网

***********************************
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<doc>
      <id>123</id>
      <book>
        <id>456</id>
      </book>
</doc>
======================
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="doc">
     <xsl:value-of select="//id" />
</xsl:template>

************************************
这里我想问下, //id按书上意思应该是文档中所有ID字段的值(因为//左边为空,即从根目录开始,买的本书上写的), 但我实际得到的值还是第一个ID的值,也就是123.

现在请哪个大虾帮忙说下原因, 或如何才能得到所有ID的值
谢谢

[ 本帖由 比尔熊 最后编辑于 2005-8-30 21:36 ]

作者: 比尔熊   发布时间: 2005-08-30

//id  => 123
//book/id => 456

作者: ※潇洒※   发布时间: 2005-08-30

谢谢
但要是这样我就不明白了,看书上介绍,//是表示在某节点下的所子节点,如:
x//y是表示在x节点下的所有y节点,包括x/*/y, x/*/*/y...等,也就是说在x节点的内部所有任何深度的y节点都包括。
要是如版主那例子,那我用不用//不是一个样?

作者: 比尔熊   发布时间: 2005-08-31

for-each  :)  看了下面的例子你应该能理解了。
(呵呵.昨天没有把你代码直接拿来试, 顺手写的. 不好意思)

xml:
<?xml version="1.0"?> <?xml-stylesheet href="test.xsl" type="text/xsl"?> <doc> <book> <id>123</id> </book> <book> <id>456</id> </book> <test> <book> <id>789</id> </book> </test> </doc>
   提示:您可以先修改部分代码再运行

xsl:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="doc"> <xsl:for-each select="//book"> <xsl:value-of select="id"/><br /> </xsl:for-each> </xsl:template> </xsl:stylesheet>
   提示:您可以先修改部分代码再运行

作者: ※潇洒※   发布时间: 2005-08-31

谢谢潇洒,搞明白了

作者: 比尔熊   发布时间: 2005-09-01


<?xml version="1.0" ?> <?xml-stylesheet type="text/xsl" href="myt.xsl" ?> <doc> <book> <id>1</id> <mybook> <id>2</id> <actbook> <id>3</id> </actbook> </mybook> </book> <person> <id>p1</id> <ourperson> <id>p2</id> <ourpersonxxx> <id>p3</id> </ourpersonxxx> </ourperson> </person> </doc>
   提示:您可以先修改部分代码再运行

作者: 无心止痛   发布时间: 2005-11-09

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:for-each select="//id">
   <br/>  <xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

作者: 无心止痛   发布时间: 2005-11-09