我有相同的标签名称和不同的字符串与标签名称不同.
这是XML.
<order>
<ID>1001</ID>
<config>
<properties>
<entry key="Total">10</entry>
<entry key="Name">name</entry>
<entry key="Config">COMMON</entry>
<entry key="Delivery">15-FEBRUARY-2013</entry>
<entry key="Setting">name</entry>
</properties>
<id>19</id>
</config>
<aID>58239346</aID>
</order>
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码:
public String cards(string id)
{
StringWriter str = new StringWriter();
XmlTextWriter xmlWriter = new XmlTextWriter(str);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("order");
xmlWriter.WriteElementString("ID", "1001");
xmlWriter.WriteStartElement("config");
xmlWriter.WriteStartElement("properties");
/*
* Create <entry key> at here
*
*
*
*
*/
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteElementString("ClientID", id);
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
xmlWriter.Close();
return str.ToString();
}
Run Code Online (Sandbox Code Playgroud)
如何为XMLWriter编写入口标记??? 我不知道怎么写它.
问题似乎是关于<entry>标签; 这基本上是一系列5个类似于:
xw.WriteStartElement("entry");
xw.WriteAttributeString("key", "RecordTotal");
xw.WriteString("10");
xw.WriteEndElement();
Run Code Online (Sandbox Code Playgroud)
然而,你可能也想看看XmlSerializer-很可能会令这个很多更容易:
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
static class Program {
static void Main() {
var order = new Order {
ClientId = 1001,
Id = 58239346,
Config = new OrderConfig {
Id = 19,
Properties = {
new OrderProperty { Key = "RecordTotal", Value = "10"},
new OrderProperty { Key = "InputFileName", Value = "name"},
new OrderProperty { Key = "ConfigName", Value = "COMMON_"},
new OrderProperty { Key = "DeliveryDate", Value = "15-FEBRUARY-2013"},
new OrderProperty { Key = "Qualifier", Value = "name"}
}
}
};
var ser = new XmlSerializer(typeof(Order));
ser.Serialize(Console.Out, order);
}
}
[XmlRoot("order")]
public class Order {
[XmlElement("clientID", Order = 0)]
public int ClientId { get; set; }
[XmlElement("config", Order = 1)]
public OrderConfig Config { get; set; }
[XmlElement("orderID", Order = 2)]
public int Id { get; set; }
}
public class OrderConfig {
[XmlElement("id", Order = 2)]
public int Id { get; set; }
private readonly List<OrderProperty> properties = new List<OrderProperty>();
[XmlArray("properties", Order = 1), XmlArrayItem("entry")]
public List<OrderProperty> Properties { get { return properties; } }
}
public class OrderProperty {
[XmlAttribute("key")]
public string Key {get;set;}
[XmlText]
public string Value {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8651 次 |
| 最近记录: |