自定义XML输出?
使用Framework 4.0来使用Web API
通缉 XML仅输出,因此从formatters集合中删除了 JSON格式化程序. 现在,我想修改XMLSerializer输出的标准XML: <?xml version="1.0"?> -<ArrayOfCategory xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">- <Category> <Id>1</Id> <Name>Drink</Name> </Category>- <Category> <Id>2</Id> <Name>Snack</Name> </Category> </ArrayOfCategory> 我想更改“Arrayof”节点以说出更有意义的节点,并且需要在“Arrayof”节点上方添加更多节点(带有额外信息). 是否有捷径可寻?或者我是否必须编写自定义格式化程序/ seralizer? 解决方法
如果您想要对XML进行这种自定义,则应使用XmlSerializer而不是XmlFormatter中默认使用的DataContractSerializer. config.Formatters.XmlFormatter.UseXmlSerializer = true; 然后,您可以将Category的集合包装到类中,并使用[XmlRoot],[XmlElement]和[XmlArray]来自定义元素名称.这是一个例子: [XmlRoot(ElementName = "node")] public class Node { [XmlElement(ElementName= "SomeInfo")] public string Node1; [XmlElement(ElementName = "OtherInfo")] public string Node2; [XmlArray("Categories")] public List<Category> CatList; } 有关详细信息,请参阅此MSDN文章:Controlling XML Serialization Using Attributes. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |