XSLT
答えて
「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という関数があります。この関数を使用すると、埋め込みドキュメントを変数にインポートし、入力ドキュメントと同じように処理できます。
- 1. XSLT
- 2. XSLT
- 3. xslt
- 4. XSLT
- 5. XSLT
- 6. XSLT
- 7. XSLT
- 8. XSLT
- 9. XSLT -
- 10. XSLT
- 11. XSLT
- 12. XSLT
- 13. XSLT
- 14. XSLT
- 15. 私はXSLTを持っているXSLT
- 16. XSLT 1.0からXSLT 2.0への変換
- 17. XSLTマッチング
- 18. XSLTマップ
- 19. XSLT和
- 20. XSLT 2.0
- 21. XSLTナビゲーションメニュー
- 22. はXSLT
- 23. XSLT 1
- 24. XSLT - ループ
- 25. xsltソート
- 26. XSLTコード
- 27. XSLTは
- 28. XSLT foreach
- 29. XSLT:チャンク
- 30. は、XSLT
あなたの質問の「属性」はFIELD要素のNAME属性を参照しているとは思いませんが、それは何を参照していますか?質問を明確にすることはできますか?また、XMLの途中のXML処理命令は、無効または少なくとも非常に奇妙です。 XMLの仕様によれば、それは最初に現れなければならず、他のものの前に現れなければならない(SHOULD)。 –
これは有効なXMLではありません。 XML宣言は最初から始める必要があります。 –