如何在不删除不包含CDATA的元素的情况下删除CDATA?

萨米

当使用下面的XSLT删除CDATA时,某些元素将被删除,而CDATA不存在。

有人可以对代码有所启发吗?我在哪里犯错。谢谢。

输入:

<?xml version="1.0" encoding="UTF-8"?>
<response status="200">
    <CrsCreateCourseExpResponse>
        <pCategoryOut>
            <![CDATA[<XX_IL_OLM_CRS_CAT_TAB_OBJ>Y<XX_IL_OLM_CRS_CAT_TAB_OBJ>]]>
        </pCategoryOut>
        <pLearnerAccessOut>
            <![CDATA[<XX_IL_OLM_LRNR_ACC_TAB_OBJ><P_OLM_LRNR_ACC_ERRORS>N</P_OLM_LRNR_ACC_ERRORS></XX_IL_OLM_LRNR_ACC_TAB_OBJ>]]>
        </pLearnerAccessOut>
        <pActivityVersionId>42002</pActivityVersionId>
        <pOvn>1</pOvn>
        <pErrorCode>0</pErrorCode>
        <pErrorMsg>success</pErrorMsg>
    </CrsCreateCourseExpResponse>
</response>

输出:

<?xml version="1.0"?>
<response status="200">
    <XX_IL_OLM_CRS_CAT_TAB_OBJ>Y<XX_IL_OLM_CRS_CAT_TAB_OBJ>
            <XX_IL_OLM_LRNR_ACC_TAB_OBJ>
                <P_OLM_LRNR_ACC_ERRORS>N</P_OLM_LRNR_ACC_ERRORS>
            </XX_IL_OLM_LRNR_ACC_TAB_OBJ>
            4200210success
            </response>

所需的输出:

<?xml version="1.0" encoding="UTF-8"?>
<response status="200">
    <CrsCreateCourseExpResponse>
        <pCategoryOut>
            <XX_IL_OLM_CRS_CAT_TAB_OBJ>Y<XX_IL_OLM_CRS_CAT_TAB_OBJ>
        </pCategoryOut>
        <pLearnerAccessOut>
            <XX_IL_OLM_LRNR_ACC_TAB_OBJ><P_OLM_LRNR_ACC_ERRORS>N</P_OLM_LRNR_ACC_ERRORS></XX_IL_OLM_LRNR_ACC_TAB_OBJ>
        </pLearnerAccessOut>
        <pActivityVersionId>42002</pActivityVersionId>
        <pOvn>1</pOvn>
        <pErrorCode>0</pErrorCode>
        <pErrorMsg>success</pErrorMsg>
    </CrsCreateCourseExpResponse>
</response>

我正在使用的XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="name/text()">
    <xsl:value-of select="." disable-output-escaping="yes" />
    <Language>English</Language>
</xsl:template>

<xsl:strip-space elements="*"/>

<xsl:template match="*">
    <xsl:copy>
    <xsl:copy-of select="@*"/>
        <xsl:value-of select="." disable-output-escaping="yes"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>
马丁·霍恩(Martin Honnen)

我没有name在输入中看到任何元素,因此<xsl:template match="name/text()">对我来说尚不清楚,但是,除了模板之外,<xsl:template match="*">您还可以简单地使用它<xsl:template match="text()"><xsl:value-of select="." disable-output-escaping="yes"/></xsl:template>来确保在复制所有文本节点时应用了disable-output-escaping(如果您不这样做)所有人都需要它,然后将其限制为例如<xsl:template match="pCategoryOut/text() | pLearnerAccessOut/text()"><xsl:value-of select="." disable-output-escaping="yes"/></xsl:template>然后删除template match="*",第一个模板,身份转换模板,将负责复制元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不删除元素的情况下删除jQuery UI元素?

来自分类Dev

如何在不删除元素的情况下删除jQuery UI元素?

来自分类Dev

如何在不删除依赖的情况下删除deb

来自分类Dev

如何在不删除依赖的情况下删除deb

来自分类Dev

如何在不删除子级的情况下删除包装器(父元素)?

来自分类Dev

如何在不删除约束的情况下“禁用”它们?

来自分类Dev

如何在不删除约束的情况下“禁用”它们?

来自分类Dev

如何在不删除的情况下进行zip压缩?

来自分类Dev

如何在不删除 Windows 的情况下安装 Ubuntu?

来自分类Dev

如何在不删除 div 元素的情况下裁剪文本,jquery

来自分类Dev

如何在不删除Gnome的情况下删除主显节?

来自分类Dev

PHP Storm:如何在不删除文件的情况下删除项目

来自分类Dev

如何在不删除Linux本身的情况下删除最新内核

来自分类Dev

如何在不删除实际目标实体的情况下删除@ManyToMany关联(链接链接)

来自分类Dev

如何在不删除括号的情况下删除括号内的内容

来自分类Dev

如何在不删除括号的情况下删除括号内的内容

来自分类Dev

如何在不删除Linux本身的情况下删除最新内核

来自分类Dev

如何在不删除Gnome的情况下删除主显节?

来自分类Dev

如何在不删除其他重要系统组件的情况下删除线性调频?

来自分类Dev

如何在不删除Linux中其他行的情况下删除标题?

来自分类Dev

PHP Storm:如何在不删除文件的情况下删除项目

来自分类Dev

如何在不删除弹性搜索数据的情况下删除索引的默认映射

来自分类Dev

如何在不删除指定文件的情况下反转目录中的删除文件

来自分类Dev

如何在不删除回收站视图中的位置的情况下删除项目?

来自分类Dev

如何在不丑陋的情况下删除评论?

来自分类Dev

如何在不访问Windows的情况下删除grub

来自分类Dev

如何在不破坏依赖的情况下删除ImageMagick?

来自分类Dev

如何在不登录的情况下删除坏程序?

来自分类Dev

MongoDB 有没有办法在不删除更新数据中不包含的现有元素的情况下更新文档

Related 相关文章

  1. 1

    如何在不删除元素的情况下删除jQuery UI元素?

  2. 2

    如何在不删除元素的情况下删除jQuery UI元素?

  3. 3

    如何在不删除依赖的情况下删除deb

  4. 4

    如何在不删除依赖的情况下删除deb

  5. 5

    如何在不删除子级的情况下删除包装器(父元素)?

  6. 6

    如何在不删除约束的情况下“禁用”它们?

  7. 7

    如何在不删除约束的情况下“禁用”它们?

  8. 8

    如何在不删除的情况下进行zip压缩?

  9. 9

    如何在不删除 Windows 的情况下安装 Ubuntu?

  10. 10

    如何在不删除 div 元素的情况下裁剪文本,jquery

  11. 11

    如何在不删除Gnome的情况下删除主显节?

  12. 12

    PHP Storm:如何在不删除文件的情况下删除项目

  13. 13

    如何在不删除Linux本身的情况下删除最新内核

  14. 14

    如何在不删除实际目标实体的情况下删除@ManyToMany关联(链接链接)

  15. 15

    如何在不删除括号的情况下删除括号内的内容

  16. 16

    如何在不删除括号的情况下删除括号内的内容

  17. 17

    如何在不删除Linux本身的情况下删除最新内核

  18. 18

    如何在不删除Gnome的情况下删除主显节?

  19. 19

    如何在不删除其他重要系统组件的情况下删除线性调频?

  20. 20

    如何在不删除Linux中其他行的情况下删除标题?

  21. 21

    PHP Storm:如何在不删除文件的情况下删除项目

  22. 22

    如何在不删除弹性搜索数据的情况下删除索引的默认映射

  23. 23

    如何在不删除指定文件的情况下反转目录中的删除文件

  24. 24

    如何在不删除回收站视图中的位置的情况下删除项目?

  25. 25

    如何在不丑陋的情况下删除评论?

  26. 26

    如何在不访问Windows的情况下删除grub

  27. 27

    如何在不破坏依赖的情况下删除ImageMagick?

  28. 28

    如何在不登录的情况下删除坏程序?

  29. 29

    MongoDB 有没有办法在不删除更新数据中不包含的现有元素的情况下更新文档

热门标签

归档