次のコード
Xml.Node* node = new Xml.Node (null, "name");
node->set_content("&");
次のエラーが発生します。
エラー: 終了していないエンティティ参照
これはバグですか、それとも何か間違っていますか?
より大きい文字とより小さい文字の両方が正常に機能します。また、add_content メソッドはアンパサンド文字で正常に機能します。
これはバグですか、それとも何か間違っていますか?
後者。xmlNodeSetContentドキュメントから: 「コンテンツは XML CDATA の一部であると想定されているため、エンティティ参照は許可されますが、XML の特殊文字は最初にエスケープする必要があります...」. これを行うには、 GLib.Markup.escape_textを使用できます。
また、add_content メソッドはアンパサンド文字で正常に機能します。
xmlNodeAddContentドキュメントから: 「xmlNodeSetContent() とは対照的に、@content は未加工のテキストであると想定されているため、エスケープされていない XML 特殊文字が許可され、エンティティ参照はサポートされていません。」