와 XML 내부 XML을 읽고 난 요소 내부에 정의 된 XML 문자열이 XML 문서를 가지고 문자열이 아닌 XML.XSLT
어떻게 이것을 XSLT에서 XPath와 함께 사용할 수 있습니까?
와 XML 내부 XML을 읽고 난 요소 내부에 정의 된 XML 문자열이 XML 문서를 가지고 문자열이 아닌 XML.XSLT
어떻게 이것을 XSLT에서 XPath와 함께 사용할 수 있습니까?
은 "xmlString을"속성 내부의 XML은
<
및>
로 이스케이프 문자열이 아닌 XML로 읽습니다.
생각해보십시오. 정확히 어떻게해야 할 것인가? XSLT는 XML에 XML이 포함되어 있고 중첩 된 XML이 CDATA
섹션 내에 있지 않음을 어떻게 알 수 있습니까?
글쎄, 실제로는 XML이 아닙니다. –
@ 존 : 사실, * XML 문자열을 나타냅니다. 나는 당신이 OP의 질문을 오해 한 것 같아요. – Cerebrus
저는 이것이 XSLT의 한 단계 과정으로 이루어질 수 있다고 생각하지 않습니다.
유일한 기회는 문서 문자열을 추출하고 별도의 XML 문서로 구문 분석 한 다음 거기에서 가져 오는 것입니다. 생산
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="FIELD[@NAME='xmlstring']">
<xsl:copy>
<xsl:copy-of select="@*" />
<!-- now this is somewhat brittle, I would not really recommend
it for production use, but maybe it helps nevertheless -->
<xsl:choose>
<xsl:when test="contains(., '<?xml')">
<xsl:value-of select="substring-after(., '?>')" disable-output-escaping="yes" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." disable-output-escaping="yes" />
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
:
는 대체 솔루션으로, 당신은 이런 변화를 쓰기 콜드 다음 두 번째 단계에서 일반 XML 문서처럼 사용할 수 있습니다
<HIT>
<FIELD NAME="xmlstring">
<kontaktpersoner>
<person>
<funksjon><![CDATA[Økonomi]]></funksjon>
<tittel><![CDATA[regnskapsansv.]]></tittel>
<email><![CDATA[[email protected]]]></email>
<navn><![CDATA[Test Test]]></navn>
</person>
<person>
<funksjon><![CDATA[Leder]]></funksjon>
<tittel><![CDATA[adm. dir.]]></tittel>
<email><![CDATA[[email protected]]]></email>
<navn><![CDATA[Test2 Test]]></navn>
</person>
</kontaktpersoner>
</FIELD>
</HIT>
.
xslt 프로세서를 전환 할 수있는 경우 Saxon은 parse 함수를 사용하여 포함 된 문서를 변수로 가져 와서 입력 문서처럼 처리 할 수 있습니다.
귀하의 질문에 "속성"이 FIELD 요소의 NAME 속성을 참조하지 않는다고 생각하지만 그 내용은 무엇을 의미합니까? 질문을 명확히 할 수 있습니까? 또한 XML 중간의 XML 처리 명령은 완전히 무효이거나 적어도 이상합니다. XML specificaton에 따르면, 그것은 처음에 나타나야하고 다른 어떤 것보다 앞에 나와야합니다 (SHOULD). –
이것은 유효한 XML이 아닙니다. XML 선언은 처음부터 시작해야합니다. –