以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助]会用javax.xml.transformer...通过xsl 转换xml的兄弟进来看下。。。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=58448)


--  作者:wangyongshan
--  发布时间:1/23/2008 4:09:00 PM

--  [求助]会用javax.xml.transformer...通过xsl 转换xml的兄弟进来看下。。。
我在用javax.xml.transformer...根据xsl转换xml时发现一个问题:
我定义了一个属性集合:

<xsl:attribute-set name="CommonAttributes">
    <xsl:attribute name="ID"><xsl:value-of select="../../@属性"/></xsl:attribute>
   .....................
</xsl:attribute-set>

创建了一个孙子节点:

<xsl:element name="AAA" use-attribute-sets="CommonAttributes">
   ..............
</xsl:element>

然后通过写一个Java应用程序用javax.xml.transformer....类库转换xml,发现生成的孙子节点的ID属性值为空:<AAA ID="" />
但是当我不用 use-attribute-sets,而是将 ID 直接写在 AAA 元素中,像下面这样:

<xsl:element name="AAA">
     <xsl:attribute name="ID"><xsl:value-of select="../../@属性"/></xsl:attribute>
      ..............
</xsl:element>

生成的孙子节点AAA中的 ID 属性值就获取到了:<AAA ID="1001" />,为什么啊????
因为我有很多的属性是公共的,所以我使用<xsl:attribute-set>标签减少重复代码的书写,但是结果却令人失望。。。
我用XMLSpy2006转换时,上面的 2 种方法都能获取到结果,但是用 JAVA 就不行了,为什么啊???。。。。


--  作者:enyaxp
--  发布时间:1/24/2008 3:17:00 AM

--  
javax.xml.transformer不支持use-attribute-sets?

还真没试过,写段小程序试试先。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
27.344ms