앰퍼샌드 기호 (&)가 포함 된 특정 XML 태그를 출력하려고 할 때 현재 약간의 문제가 있습니다.앰퍼샌드 기호가 나타날 때 XSLT가 충돌합니다.
그래서 더 구체적으로 다음 태그를 출력하려고합니다. 나는 다음의 태그 그러나 나는 다음과 같은 코드
<xsl:template match="fullname">
<xsl:apply-templates/>
</xsl:template>
그것을 시도했다 그리고 나는 또한
<xsl:template match="fullname">
<xsl:value-of-select="." disable-output-escaping="Yes"/>
</xsl:template>
을 시도
<fullname>Ben and Jerry</fullname>
잘 실행하여 오류
<fullname>Ben & Jerry</fullname>
를 얻을 수
두 가지 모두 오류가 발생했습니다. 또는. 내가이 일을 얼마나 유일한 방법은이 실행 가능한 옵션이 아니다 그러나 내가받은 XML 파일을 통제 할 수 없으며,이
<fullname><![CDATA[Ben & Jerry]]></fullname>
같이 CDATA를 사용하는 것입니다. 이 문제를 우회/해결하기 위해 XSLT에서 할 수있는 일이 있습니까?
감사합니다.
이스케이프 처리되지 않은 &가 포함 된 경우, ** ** ** XML이 아닙니다. 그들이 실패한 XML을 당신에게 공급하고있는 사람에게 말하십시오. –
감사합니다 돈 Roby. 그러나 출력 된 XML 파일을 제어 할 수는 없습니다. 따라서 해결 방법을 찾으려고합니다. 이상적으로 Ampersand가 데이터에 포함되어있는 동안 이상적이지만 XSLT가 서명을 모두 무시하는 경우에도 만족할 것입니다. –
@Jaco : "통제 없음"은 상대적인 용어입니다. 두 개의 짝수가 홀수로 합쳐지는 100 개의 방정식을 생성하라는 요청을 받았다면 그럴 수 없다고 말할 수 있습니다. 요구 사항에 오류가 있습니다. XML이 아닌 XML을 생성하라는 요청을 받았을 때도 마찬가지입니다. 유사한 고려 사항이 입력 XML에도 적용됩니다. 나는 잘못된 입력이나 잘못된 요구 사항에 대한 해결 방법을 고려할 수 없다고 말하려는 것이 아니지만 "나는 통제 할 수 없다"라는 말을 듣고 항상 "사실은 그렇지 않습니다."라고 생각합니다. – LarsH