在xslt中读取xml文档

时间:2013-09-24 18:35:49

标签: xslt xslt-2.0

我有一个java方法,它将xml作为字符串返回。我从xslt调用此方法并尝试将其作为xml文档处理。我面临的问题是,如果你试图将该文档读入varialble,那么xslt将其视为一个字符串,因为我想使用xpath查询来获取一些数据。这是我的xslt

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
    xmlns:f="functions" xmlns:oracledb="java:com.application.dbmethods.OracleDB.TaxRef"
    exclude-result-prefixes="xs xd oracledb f" version="2.0"
    >
    <xsl:output indent="yes" method="xml"/>

 <xsl:template match="/">
   <oXrefs>
     <xsl:apply-templates />
   </oXrefs>
   <xsl:variable name="doc">
     <xsl:sequence select="oracledb:getMetaDataSP()"/>
   </xsl:variable>

   <xsl:message> 
     <xsl:value-of select="$doc/abbrev"></xsl:value-of>
   </xsl:message>

 </xsl:template>
</xsl:stylesheet>

如果我使用

     <xsl:value-of select="$doc"></xsl:value-of>

然后我得到字符串输出但我需要使用xpath(如$ doc / abbrev等)访问该文档的节点。任何帮助将不胜感激。我正在使用saxon xslt处理器。

1 个答案:

答案 0 :(得分:0)

我用saxon:解析修复它。

    <xsl:variable name="doc">
     <xsl:sequence select="saxon:parse(oracledb:getMetaDataSP())"/>
   </xsl:variable>