3

「空白のみのテキストノード」を持つ XML ファイルを読んでいます。

<p>I <b>love</b> <i>Mozart</i>.</p>

上記の (簡略化された) 例では、終了タグと開始タグの間に空白 (1 つのスペース) があります。そのスペースを確保する必要があります。

RapidXML で解析する場合、「parse_comment_nodes」のみを指定しているため、「parse_trim_whitespace」と「parse_normalize_whitespace」は有効ではないと想定しています。だから私は "xml:space" 構文を使用しようとしています:

<p xml:space="preserve">I <b>love</b> <i>Mozart</i>.</p>

...しかし、RapidXML はそれを尊重していないようです。すべての兄弟ノードをループすると、値が " " のノードが表示されません。

私はドキュメントを読んで (そして読み直して)、StackOverflow でここを検索してきましたが、これが私の側の構文の問題なのか、それとも RapidXML の問題なのか、今のところわかりません。

4

1 に答える 1

3

私は、RapidXML 1.13 が xml:space="preserve" 属性を使用した空白のみのテキスト ノードの回避をサポートしていないことを確信しています。SourceForge でこの問題のパッチを見つけました。

RapidXML 1.13 空白のみのテキスト ノードのバグのパッチへのリンク

このパッチは、RapidXML が空白のみを含む有効なノードを単に返さない/スキップしないという問題を修正します。xml:space="preserve" 属性の使用は有効にしません。これは、バグ修正を有効にする好ましい方法です。おそらく、RapidXML プロジェクトに詳しい人が、将来、その変更を行うことができるでしょう。

于 2013-09-05T21:58:22.240 に答える