첫 번째 문제는 콘텐츠가 "이중 탈출"되어 나타나는 것입니다. 아포스트로피 엔터티는 '
이 아니고 '
입니다.
문자를 translate()
으로 바꾸려는 시도가 예상과 다른 방식으로 작동하지 않았습니다. 찾기/바꾸기 메소드가 아닙니다. 두 번째 인수에 문자 목록을 지정하고 세 번째 매개 변수에 각 문자를 번역하려면 해당 문자를 지정합니다. 세 번째 매개 변수의 문자 목록에 해당 문자가 없으면 문자가 제거됩니다.
문자 교체를 수행하려면 recursive template을 사용해야합니다. 그냥 replace() 기능을 사용할 수 있습니다 XSLT 2.0 물론
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="MyElement"/>
<xsl:with-param name="replace" select="'&apos;'"/>
<xsl:with-param name="with" select='"'"'/>
</xsl:call-template>
</xsl:template>
<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text"
select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
: : 예를 들어
<xsl:sequence select='replace(MyElement, "&apos;", "'")'/>
를 추가하고 무엇 너? –
아, 급하게 했어. 나는 그의 예제를 복사하여 붙여 넣기 만하고 입력의 텍스트 노드를 얻는다 (그가 주장하는 결과가 아니다). 그 죄송합니다. 그런데 –
실제 문자는 어포 스트로피 또는 오른쪽 작은 따옴표입니까? –