4

我目前有一个程序将数据从 VBA (Access) 传输到 C# (通过 ASP.NET POST)。如何在每一端编码/解码?

这是我在 C# 中读取的 XML:

StreamReader reader = new StreamReader(Request.InputStream);
string xmlData = "";
XmlDocument xml = new XmlDocument();
xmlData = reader.ReadToEnd();
XmlElement rootXML;
xml.LoadXml(xmlData);
rootXML = xml.DocumentElement;

这是我用 C# 编写的 XML:

Response.Clear();
Response.ContentType = "text/xml";
Response.Charset = "UTF-8";
Response.Write(XML_in_String);
Response.End();

这是我用 VBA 编写的 XML

connection.Open "POST", server & "www.webpage.com/" & postData, False
connection.setRequestHeader "Accept", "application/xml"
connection.setRequestHeader "Content-Type", "application/xml"
connection.send "<?xml version=""1.0"" encoding=""UTF-8"" ?><data>" & outXMLstr & "</data>"

这是我在 VBA 中读取的 XML

Dim inXML As MSXML2.DOMDocument
Set inXML = New DOMDocument
inXML.loadXML (connection.responseText)

具体来说,我在尝试加载 XML(xmlData) 时在 C# 中遇到错误,因为它无法解析与号 (&)。

4

1 回答 1

1

在您的 上xmlData,您是否尝试过像@HatSoft 所说的那样使用Server.HtmlEncode/ Server.HtmlDecode?这样您就可以摆脱在 XML 中不起作用的 htmlentities。

或者您可以将数据包装到 CDATA 字段中

在 C# 中解码 CDATA 部分

http://www.w3schools.com/xml/xml_cdata.asp

于 2012-07-06T13:11:12.013 回答