XSLT溶液:この変換は、任意のドキュメントに適用される場合
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="pNewIpAddress" select="'192.68.0.1'"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ipAddress/text()">
<xsl:value-of select="$pNewIpAddress"/>
</xsl:template>
</xsl:stylesheet>
、文書のすべてのノードは、を除いて、 "現状のまま" コピーされ任意のipAddress
要素のテキストノード子(この要素が文書のどこにあるかに関係なく)。後者は、$pNewIpAddress
という名前の外部提供パラメータの値に置き換えられます。
例えば、変換は、このXMLドキュメントに対して適用される場合:
<t>
<a>
<b>
<ipAddress>127.0.0.1</ipAddress>
</b>
<c/>
</a>
<d/>
</t>
を指名手配、正しい結果が生成されます
あり
<t>
<a>
<b>
<ipAddress>192.68.0.1</ipAddress>
</b>
<c/>
</a>
<d/>
</t>
多くのJavaベースのXSLTプロセッサーとJavaからどのように呼び出すことができるかを理解する適切な場所は、その文書です。
http://www.saxonica.com/documentation/documentation.xml
良い質問、1:最高なXSLTプロセッサの1つは、サクソン、そのドキュメントはで見つけることができます。完全なXSLTソリューションについての私の答えと、最高のJavaベースのXSLTプロセッサのドキュメントへのリンクを参照してください。 –
「ベスト」とはどういう意味ですか?最も便利な(最も単純な)、最もパフォーマンスが高い、大きなファイルに使用できますか? XSLTとツリーモデル(DOM)は便利ですが、多くのメモリを使い、比較的遅い(例えば)。 – StaxMan
サクソンはかなり最高です。 DOMよりも小さいメモリ内モデルを持ち、巨大ファイルのストリーミングをサポートし、例外的なオプティマイザを持ち、XSLT 1、XSLT 2、XQuery、XML Schemaをサポートし、いくつかの新しいドラフト標準をサポートしています。 – lavinio