一部のXMLノードに一部の文字列をアタッチしているときに問題が発生しました。これをよりよく説明するために、私は簡単な例を作成しました...私がこのXMLコードを持っていると想像してください:
<song>
<title>
Surfin' USA
</title>
</song>
単に「Surfin'USA」と書く'
代わりに、一重引用符の代わりに明示的に使用していることに注意してください。XMLコードは有効です。または、少なくとも、オンラインで見つけてテストしたいくつかのツールによって有効であると見なされています。
私の問題は、その文字列をXmlTextオブジェクトに入れようとすると、次のようになることです。
Dim xmlDoc As New XmlDocument()
Dim xmlMyText As XmlText
xmlMyText = xmlDoc.CreateTextNode("Surfin' USA")
XmlTextオブジェクト内にまったく同じ文字列値があると思いますが、代わりにわずかに異なる値を取得しています。
MsgBox(xmlMyText.OuterXml) ' OUTPUTS: Surfin&39; USA
&
つまり、 AFAIKが「アンパサンドをエスケープしないままにすることはできない」ため、アンパサンド記号はに変換されます。しかし、私の意見では、この場合、#39およびセミコロンと組み合わせて使用されるため、エスケープされていません。間違っていますか?
私を助けて、どうすればこの変換を回避できるか説明してもらえますか?
お手数をおかけしますが、よろしくお願いいたします。