如何将符号编码为xml,以便.net正确解析?

如何将符号编码为xml,以便.net正确解析?,.net,xml,encoding,.net,Xml,Encoding,以下最小测试用例在powershell中引发错误: [reflection.assembly]::LoadWithPartialName('system.xml.linq') [system.xml.linq.xdocument]::parse('<node>&</node>') [reflection.assembly]::LoadWithPartialName('system.xml.linq')) [system.xml.linq.xdocument]::

以下最小测试用例在powershell中引发错误:

[reflection.assembly]::LoadWithPartialName('system.xml.linq')
[system.xml.linq.xdocument]::parse('<node>&</node>')
[reflection.assembly]::LoadWithPartialName('system.xml.linq'))
[system.xml.linq.xdocument]::解析('&')
坦率地说,在任何.net库中。这在存储URL时是一个真正的问题-例如,如果
的内容是
http://test.com/?one=a&two=b


它应该如何正确编码?

XML中编码的符号是
&

使用编码的“与”将不会引发异常:

[reflection.assembly]::LoadWithPartialName('system.xml.linq')
[system.xml.linq.xdocument]::parse('<node>&amp;</node>')
[reflection.assembly]::LoadWithPartialName('system.xml.linq'))
[system.xml.linq.xdocument]::解析(“&;”)
它在XML语法中定义为“&;”,与.Net无关。