以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  [求助]用xpath表达式从下面的XML数据中查询出所有20岁以上并在“Class 1”班级的所有学生。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=35196)


--  作者:simaowu
--  发布时间:7/4/2006 12:51:00 PM

--  [求助]用xpath表达式从下面的XML数据中查询出所有20岁以上并在“Class 1”班级的所有学生。
用xpath表达式从下面的XML数据中查询出所有20岁以上并在“Class 1”班级的所有学生。
<Students>
 <Student ID="1" Class="Class 2">
  <FirstName>James</FirstName>
  <LastName>Anderson</LastName>
  <Age>21</Age>
 </Student>
 <Student ID="2" Class="Class 1">
  <FirstName>Janina</FirstName>
  <LastName>Ann</LastName>
  <Age>20</Age>
 </Student>
 <Student ID="3" Class="Class 1">
  <FirstName>Deforrest</FirstName>
  <LastName>Berkheimer</LastName>
  <Age>19</Age>
 </Student>
 <Student ID="4" Class="Class 1">
  <FirstName>Trenton</FirstName>
  <LastName>Bicknell</LastName>
  <Age>22</Age>
 </Student>
</Students>
--  作者:simaowu
--  发布时间:7/4/2006 1:12:00 PM

--  
<xsl:template match="/">
<xsl:apply-templates select=" Students[Class='Class 1' and Age>= 20 " />
</xsl:template>

<xsl:template match="Students">
<xsl:value-of select="FirstName"/>
</xsl:template>
这样对不对???


xsl这个方法可以吗
xsl:for-each select="student">
      <xsl:when test=" class="class1" ">
                  <xsl:if expr="test(this)">
                     <p>
                     <xsl:value-of select="FirstName"/> <xsl:value-of select="LastName"/>
                     <p>
                  </xsl:if>
      </xsl:when>
</xsl:for-each>


这是expr的值

<xsl:script language='javascript'>
<![CDATA[
function test(o){
var A=o.selectSingleNode("Age").text;
return (parseInt(A)>=20);
}
]]>
</xsl:script>


--  作者:Qr
--  发布时间:7/5/2006 5:26:00 PM

--  
<xsl:template match="/">
<xsl:apply-templates select="Students/Student[@Class='Class 1' and Age &gt;='20']"/>
</xsl:template>

<xsl:template match="Student">
<xsl:value-of select="FirstName"/>
</xsl:template>

</xsl:stylesheet>



--  作者:simaowu
--  发布时间:7/6/2006 1:29:00 PM

--  
谢谢

我想问一下第二种方法是不是也错了,


--  作者:Qr
--  发布时间:7/6/2006 6:40:00 PM

--  
<xsl:if expr="test(this)"></xsl:if>这种用法好象是草案里的用法,标准似乎没有吧,从来没用过。在标准里应该无法得到想要的结果,除非有外部事件如鼠标单击才能触发JS脚本,XSL本身不会。

--  作者:kinghunter
--  发布时间:7/10/2006 6:02:00 PM

--  
难道变量就要写死
--  作者:Qr
--  发布时间:7/10/2006 7:37:00 PM

--  
你所说的那个“变量”是可以动态修改的,从而可以实现数据的检索。可以看一下偶的旧贴。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms