C# コードを次に示します。
var sb = new StringBuilder();
var w = XmlWriter.Create(sb);
w.WriteStartElement("hello");
w.WriteAttributeString("target", "world ' \" !");
w.WriteEndElement();
w.Flush();
// then look at sb.ToString()
次のような文字列を取得しています。
<?xml version="1.0" encoding="utf-16"?><hello target="world ' " !" />
単一引用符ではなく、二重引用符をエスケープするだけです。しかし、XmlWriter.WriteAttributeString(String, String) のドキュメントには次のように書かれています。
属性値に二重引用符または一重引用符が含まれている場合、それらは " に置き換えられます。そして' それぞれ。
ドキュメントが言うことを実行するために設定する必要があるフラグはありますか?