将xml数据发送到Web服务而不是使用CDATA的最佳方法是什么?

时间:2011-06-29 08:31:11

标签: c# xml web-services

我有一个带有单个字符串参数的Web服务。

在我的情况下,我需要发送一个字符串,这是一个xml文档,其中一个元素包含一个xml片段(我将用它来创建一个文件)。

所以例如我发送:

<people>
  <person>
     <name>J Smith</name>
     <value><![CDATA[<content>rest of xml document here</content>]]></value>
  </person>
</people>

我用..来创建一个xml文件。

我想知道是否有更好的方法来做这个而不是使用CDATA? CDATA文件非常小(小于20KB)。

JD

3 个答案:

答案 0 :(得分:2)

我建议使用Base64-Encoding XML片段。

答案 1 :(得分:2)

无需使用CDATA。您可以按原样直接传递xml片段。

例如,请参阅http://msdn.microsoft.com/en-us/library/aa480498.aspx

更新:

Steve指出你有一个字符串参数而不是XmlElement参数。我不确定它是否仍然可以这样工作(虽然我觉得它可以:)。

CDATA和Base64之外的另一个选择是Xml编码,例如

var xml = new XmlDocument();
var node = xml.CreateElement("root");
node.InnerText = "<content>Anything</content>";

var xmlString = node.InnerXml; /// &lt;content&gt;Anything&lt;/content&gt;

答案 2 :(得分:1)

使用Mutipart / Form-Data的标准HTTP POST怎么样?使单个参数成为url或querystring的一部分。

这是更“RESTful”的做事方式。

这只是一个标准的文件上传。

相关问题