[英]How to encode/decode XML in VBA and C#
I currently have a program that trasfer data from VBA (Access) to C# (via ASP.NET POST). 我目前有一个程序可以将数据从VBA(Access)转移到C#(通过ASP.NET POST)。 How do I encode/decode on each end?
我如何在每一端编码/解码?
Here is my XML read in C#: 这是我在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;
Here is my XML write in C#: 这是我在C#中的XML编写:
Response.Clear();
Response.ContentType = "text/xml";
Response.Charset = "UTF-8";
Response.Write(XML_in_String);
Response.End();
Here is my XML write in VBA 这是我在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>"
Here is my XML read in VBA 这是我在VBA中的XML读取
Dim inXML As MSXML2.DOMDocument
Set inXML = New DOMDocument
inXML.loadXML (connection.responseText)
Specifically, I got an error in C# when trying to loadXML(xmlData) because it can't parse the ampersand (&). 具体来说,我在尝试加载XML(xmlData)时遇到了C#错误,因为它无法解析&符号(&)。
On your xmlData
, have you tried as @HatSoft says, to use Server.HtmlEncode
/ Server.HtmlDecode
? 在您的
xmlData
,您是否尝试过@HatSoft说,使用Server.HtmlEncode
/ Server.HtmlDecode
? That way you could get rid of htmlentities that doesn't work in XML. 这样你就可以摆脱那些在XML中不起作用的能力。
Or you could wrap your data into a CDATA-field 或者您可以将数据包装到CDATA字段中
Decode CDATA section in C# 在C#中解码CDATA部分
http://www.w3schools.com/xml/xml_cdata.asp http://www.w3schools.com/xml/xml_cdata.asp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.