私は、Word ベースの文書を XML に変換するという非常に骨の折れる作業の真っ最中です。次の問題が発生しました。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p>
<element>This one is taken care of.</element> Some more text. „<hi rend="italics">Is this a
quote</hi>?” (Source). </p>
<p>
<element>This one is taken care of.</element> Some more text. „<hi rend="italics">This is a
quote</hi>” (Source). </p>
<p>
<element>This one is taken care of.</element> Some more text. „<hi rend="italics">This is
definitely a quote</hi>!” (Source). </p>
<p>
<element>This one is taken care of.</element> Some more text.„<hi rend="italics">This is a
first quote</hi>” (Source). „<hi rend="italics">Sometimes there is a second quote as
well</hi>!?” (Source). </p>
</root>
<p>
ノードには混合コンテンツがあります。<element>
前回の繰り返しでお世話になりました。しかし、問題は、部分的にテキスト ノード内に表示され、部分的にテキスト ノードとして表示される引用符とソースにあり<hi rend= "italics"/>
ます。
XSLT 2.0 を使用して次のことを行うにはどうすればよいですか。
<hi rend="italics">
最後の文字が "„" であるテキスト ノードの直前にあるすべてのノードに一致しますか?<hi rend="italics">
asの内容を出力し<quote>...</quote>
、引用符 ("„" と """) を取り除きますが、 ?<quote/>
の兄弟の直後に現れる疑問符と感嘆符を含めます。<hi rend="italics">
<hi rend="italics">
ノードに続く "(" と ")" の間のテキスト ノードを<source>...</source>
角かっこなしで変換します。- 最後のピリオドを含めます。
つまり、出力は次のようになります。
<root>
<p>
<element>This one is taken care of.</element> Some more text. <quote>Is this a quote?</quote> <source>Source</source>.
</p>
<p>
<element>This one is taken care of.</element> Some more text. <quote>This is a quote</hi> <source>Source</source>.
</p>
<p>
<element>This one is taken care of.</element> Some more text. <quote>This is definitely a quote!</hi> <source>Source</source>.
</p>
<p>
<element>This one is taken care of.</element> Some more text. <quote>This is a first quote</quote> <source>Source</source>. <quote>Sometimes there is a second quote as well!?</quote> <source>Source</source>.
</p>
</root>
このような混合コンテンツと文字列操作を扱ったことは一度もありません。私はあなたのヒントに非常に感謝しています。