大约一个月前,我写了一篇关于在Web服务的CDATA标签中包装一些数据的帖子(这是他们的要求,而不是我的要求)。我做了一堆故障排除,并努力提供了一些结果。 (有关代码和结果,请参阅帖子Problems serializing a class to XML and including a CDATA section)
现在我已经意识到,类设计至少可以说是糟糕的,并且已经重写了我之前编写的大部分代码。因此,我需要一些时间来回到以前的问题。
为了简洁起见,我决定提出一个新问题并保留旧问题。
我的(修订)问题
我是否可以使用XmlDocument创建直到CDATA部分的元素,然后使用CreateCDataSection()
方法创建CDATA部分,如下所示?
<UpdateOrderStatus>
<Action>2</Action>
<Value>
<![CDATA[
<Shipment>
<Header>
<SellerID>
...
]]>
</Value>
</UpdateOrderStatus>
我能够将现有对象序列化为正确的XML片段,但是如果这段代码正确或者有更好的方法,我不是100%肯定:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.CreateDocumentFragment();
xmlDoc.CreateElement("Shipment");
xmlDoc.CreateElement("Action");
xmlDoc.CreateTextNode("2");
xmlDoc.CreateElement("Value");
xmlDoc.CreateCDataSection(orderToUpdate);
如果你正在编程,你会怎么做呢?我不一定需要代码,除非这个概念只能以这种方式显示。类名或MSDN引用等都没问题