2013-09-24 113 views
0

我有一个将xml作为字符串返回的java方法。我从xslt调用这个方法,并试图将它作为一个xml文档处理。我现在面临的问题是,如果你试图读取该文件到varialble然后XSLT把它当作地方,因为我想使用XPath查询来获取一些数据。这里是我的XSLT在xslt中读取xml文档

<?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

我使用了saxon:parse来解决它。

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