1
我想:的xsl:使用CDATA段元素的輸出,不封裝針對性的CDATA標記CDATA段元素
<!-- Arrive at the target XQuery -->
<p:processor name="oxf:xslt">
<p:input name="config">
<xsl:stylesheet version="2.0">
<xsl:output method="xml" version="1.0"
encoding="iso-8859-1" indent="yes" cdata-section-elements="text"/>
<xsl:template match="/">
<xsl:variable name="apps" select="doc('input:instance')//APPLICATION"/>
<jaxrx:query>
<text>
xquery version "1.0";
declare namespace fn="http://www.w3.org/2005/xpath-functions";
let $dataSet := <xsl:value-of select="doc('input:request')/request/parameters/parameter[name='dataSet']/value" />
let $databaseName := <xsl:value-of select="/Configuration/XMLDB/Name/text()" />
let $applicationID := <xsl:value-of select="doc('input:request')/request/parameters/parameter[name='applicationID']/value" />
let $finalURL := fn:concat($databaseName, "/",$dataSet)
let $applicationsModified := '<xsl:copy-of select="$apps"/>'
<!-- disable-output-escaping not supported by Orbeon xslt processor
(: let $applicationsModified := '<xsl:text disable-output-escaping="yes">
<![CDATA[<]]>
</xsl:text>
<xsl:text disable-output-escaping="yes">![CDATA[</xsl:text>
<xsl:copy-of select="$apps"/>
<xsl:text>]]</xsl:text>
<xsl:text disable-output-escaping="yes">
<![CDATA[>]]></xsl:text>' :) -->
for $all in fn:collection($finalURL)
for $anApp in $all/APPLICATION[APPLICATION_ID=$applicationID]
return
(
replace node $anApp with $applicationsModified
)
</text>
</jaxrx:query>
</xsl:template>
</xsl:stylesheet>
</p:input>
<p:input name="data" href="#configuration"/>
<p:input name="request" href="#request"/>
<p:input name="instance" href="#instance"/>
<p:output name="data" id="TargetXQuery"/>
</p:processor>
隨着生產像
<jaxrx:query><text><![CDATA[text of xquery with embedded xml]]></text></jaxrx:query>
結果的希望
但是,文本(元素的名稱)元素的文本內容不會封裝在CDATA節中。任何指針爲什麼?
我自己也嘗試設置CDATA段元素=:的「jaxrx文本」,而不是CDATA段元素=「文本」,但我仍然得到
<text>text of xquery with embedded xml</text>
,在CDATA所以沒有封裝部分...
據我所知,我需要自己輸出CDATA標籤,是否正確?在這種情況下,我無法輸出打開和關閉此CDATA標記的尖括號,而不是格式爲< >格式(在我用另一種方法指出的情況下,disable-output-escaping =「yes」不會產生Orbeon中的所需結果題) – user557060 2011-05-09 12:54:44