私はこのようになりますXSLTありますXSLテキスト出力 - 空白行と先頭のスペースをトリム
1,2,3 4,456,22 90,5,some text 365,16,soasdkjasdjkasdf 9,43,more text:出力はこのような何か(CSVファイルになるだろうが)見え
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" indent="no" encoding="utf-8" media-type="text/plain" />
<xsl:template match="/SOME/NODE">
<xsl:if test="./BLAH[foo]">
<xsl:value-of select="concat(@id, ',' , ./BLAH/bar/@id, ',' , ./blorb/text())"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
を主な問題は、私と一致していないノードから空白行(ある
1,2,3 4,456,22 90,5,some text 365,16,soasdkjasdjkasdf 9,43,more text
:それはに変換されるために、私は必要なもの
ですF条件)とインデント。空白でない行の後に改行を保存しながら、空白行を削除してインデントをトリムする方法はありますか?
私は<xsl:strip-space elements="*"/>
を使用して試してみたが、その後、出力は次のようになります。私は、各行の3つの値を持つ必要があるため動作しません
1,2,3,4,456,22,90,5,some text,365,16,soasdkjasdjkasdf,9,43,more text
。
入力の要求、(重く単純化された)サンプルとして:私はあなたがそれをこのようにアプローチを示唆している
<SOME>
<NODE>
<BLAH id="1">
<foo>The Foo</foo>
<bar id="2" />
<blorb> some text </blorb>
</BLAH>
</NODE>
<NODE>
<BLAH id="3">
<bar id="4" />
<blorb>some text that shouldn't be in output because there's no foo here</blorb>
</BLAH>
</NODE>
<NODE>
<BLAH id="5">
<foo>another Foo</foo>
<bar id="6" />
<blorb>some other text</blorb>
</BLAH>
</NODE>
</SOME>
私たちの入力を表示してください。私はあなたが ' 'を使いたいと思っていますが、ソリューションを提案する前に問題を再現する必要があります。 –
@ michael.hor257k:私は 'strip-space'を使ってみました。私はこれを反映するために質問を更新しました。 – FrustratedWithFormsDesigner
要求どおりに入力の例を表示してみませんか? - P.S.リターンが必要な場合は、他の文字と同様に明示的に出力する必要があります。 –