gpt4 book ai didi

xml - 将 CDATA 添加到 xml 文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:42:05 26 4
gpt4 key购买 nike

我想在一些 xml 标签周围添加一些 CDATA 标签

XML 源是(它只是我文件的一小部分)

<teaserText_fr>
<div xmlns:xlink="http://www.w3.org/1999/xlink xmlns="http://www.coremedia.com/2003/richtext-1.0"><p>2012 ist für viele Länder ein wichtiges Wahljahr. Die Reihe fühlt der weltweiten Demokratie auf den Zahn. </p>
</div>
</teaserText_fr>

我想要的是

<teaserText_fr>
<![CDATA[
<div xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.coremedia.com/2003/richtext-1.0"><p>2012 ist für viele Länder ein wichtiges Wahljahr. Die Reihe fühlt der weltweiten Demokratie auf den Zahn. </p>
</div>
]]>
</teaserText_fr>

我的xslt是

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
encoding="UTF-8"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD HTML 4.01//EN"
doctype-system="http://www.w3.org/TR/html4/strict.dtd"
indent="yes" />

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

<xsl:template match="teaserText_fr">
<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<xsl:copy-of select="*"/>
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</xsl:template>

</xsl:stylesheet>

我得到的是

</teaserText_de><![CDATA[<div xmlns="http://www.coremedia.com/2003/richtext-1.0" xmls:xlink="http://www.w3.org/1999/xlink"><p>à partir du 10 janvier, ARTE diffuse "I love democracy", une série documentaire qui, en cette grand année électorale, prend le pouls démocratique de la planète.</p></div>]]><addTeaserText_de>

我丢失了我的 teaserText_fr 标签,我不明白为什么

如果可能的话,我想为一些额外的标签这样做(使用像 [add|]TeaserText_[fr|de] 这样的正则表达式,但我无法让它工作......“

我整天都做了一些测试,但我没有成功。

最好的问候,纪尧姆

最佳答案

您要么需要这样做:

<xsl:template match="teaserText_fr">
<xsl:copy>
<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<xsl:copy-of select="*"/>
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</xsl:copy>
</xsl:template>

或者这个:

<xsl:template match="teaserText_fr">
<teaserText_fr>
<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<xsl:copy-of select="*"/>
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</teaserText_fr>
</xsl:template>

(我推荐第一种方式)

你应该一切就绪。

对名称以“teaserText_”开头的任何元素给予相同的处理:

<xsl:template match="*[starts-with(local-name(), 'teaserText_')]">
<xsl:copy>
<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<xsl:copy-of select="*"/>
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
</xsl:copy>
</xsl:template>

关于xml - 将 CDATA 添加到 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com