简体   繁体   English

如何在VBA和C#中编码/解码XML

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM