を削除するときにXSLTのインデントが失われた私は、次のxmlファイルを持っているノード
<?xml version="1.0" encoding="UTF-8"?>
<start>
<param_1>
<short_name>parameter_a</short_name>
</param_1>
<param_2>
<short_name_2>parameter_b</short_name_2>
</param_2>
</start>
と私は次のXSLTファイルがあります。これは私が
<?xml version="1.0" encoding="utf-8"?>
<gml:description>parameter_a</gml:description>
<gml:description>parameter_b<om:observedProperty xlink:href="parameter_b"/></gml:description>
を得る出力され
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:output method="xml" indent="yes" encoding="utf-8" />
<xsl:template match="/" >
<gml:description>
<xsl:value-of select="document('/path/to/mydoc.xml')/start/param_1/short_name"/>
</gml:description>
<gml:description>
<xsl:for-each select="document('/path/to/mydoc.xml')/start/param_2">
<xsl:variable name="my_xlink" select="short_name_2"/>
<xsl:value-of select="$my_offering1_observed_property_xlink"/>
<om:observedProperty xlink:href="{$my_offering1_observed_property_xlink}"/>
</xsl:for-each>
</gml:description>
</xsl:template>
</xsl:stylesheet>
を
問題は私が望むものはこの結果です
<?xml version="1.0" encoding="utf-8"?>
<gml:description>parameter_a</gml:description>
<om:observedProperty xlink:href="parameter_b"/>
が、私は私のXSLTファイルノードから<gml:description>
を削除した場合、最終的なXMLはそのインデントを失った:
<?xml version="1.0" encoding="utf-8"?>
<gml:description>parameter_a</gml:description><om:observedProperty xlink:href="parameter_b"/>
あなたは私が間違ってやっているものを私に教えてくださいだろうか?
おかげ
名前空間宣言とXSLを含む、あなたの完全なXSLTを投稿してください。 - 期待される出力は、整形式XML文書ではないことに注意してください(単一のルート要素が欠けています)。お使いのプロセッサによっては、インデントが不足している可能性があります。 –
こんにちはmichael、 私は名前空間の宣言を追加しました。 宣言やプロセッサの問題かどうかわかりません。なぜなら、のままにしておくと動作するからです。 私はおそらく何かを誤解しています –
あなたのXSLTに誤りがあります。たとえば、 ''に対して2つの一致があり、いくつかの終了タグがありません。このコードと[mcve]の間にはある程度の距離があります。 –
zx485