我有一个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处理器。
答案 0 :(得分:0)
我用saxon:解析修复它。
<xsl:variable name="doc">
<xsl:sequence select="saxon:parse(oracledb:getMetaDataSP())"/>
</xsl:variable>