簡単な質問: xml 入力ファイルで未加工のアンパサンドを処理する方法。
追加: アンパサンドでフィールドを選択することすらありません。パーサーは、ファイル内にアンパサンドが存在すると不平を言います。
長い説明: URL 応答を介して生成された xml を扱っています。
<NOTE>I%20hope%20this%20won%27t%20require%20a%20signature%3f%20%20
There%20should%20be%20painters%20%26%20stone%20guys%20at%20the
%20house%20on%20Wednesday%2c%20but%20depending%20on%20what%20time%20
it%20is%20delivered%2c%20I%20can%27t%20guarantee%21%20%20
Also%2c%20just%20want%20to%20make%20sure%20the%20billing%20address
%20is%20different%20from%20shipping%20address%3f
</NOTE>
これは、これにデコードされた URL です。
<NOTE>I hope this won't require a signature?
There should be painters & stone guys at the
house on Wednesday, but depending on what time it is delivered, I can't guarantee!
Also, just want to make sure the billing address is different from shipping address?
</NOTE>
問題: xslproc は、「画家と石の男」の「&」が原因で、最後の文字列でチョークし、次のエラーが表示されます。
xmlParseEntityRef: no name
<NOTE>I hope this won't require a signature? There should be painters &
xsltproc が終了を予期しているようです</NOTE>
disable-output-escaping="yes"
いろいろな場所であらゆる方法を試しました。xsl:output
とxsl:value-of
また、試しxsltproc --decode-uri
てみましたが、それを理解することはできません。ドキュメントはありません。
注: 入力を urlencoded 形式で保持する価値があるかどうか疑問に思います。そして、次のような DOCTYPE を使用します (方法がわからない)。出力は最終的にブラウザです。
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
<!ENTITY copy "©">
<!ENTITY reg "®">
]>