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)

具体的には、C# でアンパサンド (&) を解析できないため、loadXML(xmlData) を実行しようとするとエラーが発生しました。

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 に答える