您现在的位置: 启天网 >> 技术中心 >> XML >> 正文
今天是:
如何在XSL中得到某节点到根节点的全路径的所有节点?            【字体:
如何在XSL中得到某节点到根节点的全路径的所有节点?
作者:未知    文章来源:转载    点击数:    更新时间:2007-3-23
    
  要在XSL中得到某节点到根节点的带全部路径的节点,可以对该节点的路径进行copy,包括所有节点类型。下面就是具体实现的例子。
  
  GetFullPathNodes.XML
  
  <?<a href="http://dev.21tx.com/web/xml/" target="_blank">XML</a> version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="GetFullPathNodes.xsl"?>
  <DATA>
   <x1/>
   <x2>
   <x21>
   <x211>x211</x211>
   <x212>x212</x212>
   <x213>孟子E章</x213>
   </x21>
   </x2>
   <x3>
   <x31/>
   </x3>
  </DATA>
  
  GetFullPathNodes.xsl
  
  <?xml version="1.0" encoding="utf-8"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" omit-xml-declaration="yes"/>
   <!-- 确定哪个节点将被与祖先节点一起复制 -->
   <xsl:variable name="MyNodes" select="//x211"/>
   <xsl:template match="/">
   <xsl:apply-templates/>
   </xsl:template>
   <xsl:template match="*">
   <xsl:if test="$MyNodes[count(ancestor::*) = count(ancestor::* | current())] or
   count(.| $MyNodes) = count($MyNodes)">
   <xsl:copy>
   <xsl:copy-of select="@*"/>
   <xsl:apply-templates/>
   </xsl:copy>
   </xsl:if>
   </xsl:template>
   <xsl:template match="text() | comment() | processing-instruction()">
   <xsl:copy/>
   </xsl:template>
  </xsl:stylesheet>
  
  结果将象下面所示:
  
   <DATA>
   <x2>
   <x21>
   <x211>x211</x211>
   </x21>
   </x2>
   </DATA>
  
  为了看到真实的结果,可以用JavaScript程序来进行验证:
  
   <script>
   var xmldom = new ActiveXObject("Msxml2.DOMDocument")
   xmldom.async = false
   xmldom.load("GetFullPathNodes.xml")
   var xsldom = new ActiveXObject("Msxml2.DOMDocument")
   xsldom.async = false
   xsldom.load("GetFullPathNodes.xsl")
   alert(xmldom.transformNode(xsldom))
   </script>
  
  
  
    
文章录入:junsan    责任编辑:junsan 
  • 上一篇文章:
  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    Java中的XML解析器
    xml反序列化时,如何生成与之对应的类文件一…
    SQLXML系列之一:SQLXML初体验——用XML代替…
    利用Digester把XML转换为Java对象
    Ajax程序设计入门 3
    Ajax程序设计入门 2
    Ajax程序设计入门 1
    Java XML文件处理
    浅析Eclipse建模框架(EMF)及其动态能力
    构建基于Web/XML的信息集成研究2
     网友评论:(最新10条。只代表网友观点,与本站立场无关!)