2

XML のある形式を別の形式に変換する XSL があります。入力 XML には、次の値を持つノードがあります。これは、< を置き換えると、実際には XML 文字列になります。たとえば、< (より小さい) を使用

<otherInfo>&amp;lt;Paragraph&amp;gt;&amp;lt;Title&amp;gt;&amp;lt;!CDATA[Pour les nuits du 2012-10-01 - 2012-10-30]]&amp;gt;&amp;lt;/Title&amp;gt;&amp;lt;Text&amp;gt;&amp;lt;![CDATA[TAXES INCLUSES.]]&amp;gt;&amp;lt;/Text&amp;gt;&amp;lt;/Paragraph&amp;gt;</otherInfo>

出力 XML の XML ノードとして otherInfo の内容を取得したいと考えています。

xsl:valueof select="otherInfo" を実行すると、XML ノードとして取得されず、テキストとして出力されます。XSL で otherInfo の内容を XML ノードとして出力するにはどうすればよいですか?

4

2 に答える 2

2

XSLT で記述された XML パーサーを実装するか、拡張関数を呼び出すか、標準関数がある可能性がある XSLT 3.0 を待つ必要がありparse-xml()ます。

于 2012-10-15T03:32:49.483 に答える
0

あなたの質問が正しく理解できれば...

このようなことを試すことができます(コードはテストされていません)

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exslt="http://exslt.org/common" version="1.0">

<xsl:template match="*">
    <xsl:variable name="xml-string">
    <Paragraph>
        <Title>
            <!CDATA[Pour les nuits du 2012-10-01 - 2012-10-30]]>
        </Title>
        <Text>
            <![CDATA[TAXES INCLUSES.]]>
        </Text>
    </Paragraph>
</xsl:variable>

    <xsl:variable name="xmlnode" select="exslt:node-set($xml-string)"/>

    Title is <xsl:value-of select="$xmlnode//Title"/>
</xsl:template>

于 2012-10-15T04:02:30.647 に答える