【问题标题】:XSLT: How to get XMLXSLT:如何获取 XML
【发布时间】:2012-10-15 03:13:05
【问题描述】:

我有一个 XSL,可以将一种 XML 格式转换为另一种格式。在输入 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>

我希望将 otherInfo 的内容作为输出 XML 中的 XML 节点。

如果我执行 xsl:valueof select="otherInfo",我不会将它作为 XML 节点 - 它只是作为文本输出。如何让 XSL 将 otherInfo 的内容作为 XML 节点输出?

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

    您要么需要实现一个用 XSLT 编写的 XML 解析器,调用一个扩展函数,要么等待 XSLT 3.0,那里可能有一个标准的 parse-xml() 函数。

    【讨论】:

    【解决方案2】:

    如果我理解你的问题是正确的......

    你可以试试这样的(代码未测试)

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

    【讨论】:

      猜你喜欢
      • 2015-11-09
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 1970-01-01
      相关资源
      最近更新 更多