Nasıl C XML oluşturabilirsiniz#?
Nasıl C geçerli XML oluşturabilirim#?
CEVAP
Senaryoya bağlı. XmlSerializer
kesinlikle tek yönlü ve doğrudan bir nesne modeli eşleme avantajı vardır. .NET, XDocument
3.5, vb. ayrıca çok samimi. Eğer boyutu çok büyükse, XmlWriter
senin arkadaşın.
XDocument
örnek:
Console.WriteLine(
new XElement("Foo",
new XAttribute("Bar", "some & value"),
new XElement("Nested", "data")));
Veya XmlDocument
ile aynı
XmlDocument doc = new XmlDocument();
XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("Foo"));
el.SetAttribute("Bar", "some & value");
el.AppendChild(doc.CreateElement("Nested")).InnerText = "data";
Console.WriteLine(doc.OuterXml);
Bir yazıyorsanızbüyükveri akışı, DOM yaklaşımları (XmlDocument
/XDocument
vb gibi.) hızla bellek bir sürü almak. Yani eğer yazı 100 MB XML dosyası CSV, şöyle düşünebilirsin XmlWriter
; Bu daha ilkel (bir yazma-bir kez yangın hortumu), ama çok etkili (düşünün bir büyük döngü burada):
XmlWriter writer = XmlWriter.Create(Console.Out);
writer.WriteStartElement("Foo");
writer.WriteAttributeString("Bar", "Some & value");
writer.WriteElementString("Nested", "data");
writer.WriteEndElement();
Son olarak, XmlSerializer
):
[Serializable]
public class Foo
{
[XmlAttribute]
public string Bar { get; set; }
public string Nested { get; set; }
}
...
Foo foo = new Foo
{
Bar = "some & value",
Nested = "data"
};
new XmlSerializer(typeof(Foo)).Serialize(Console.Out, foo);
Bu sınıflar için haritalama için güzel bir model, vb.; ancak, eğer basit bir şey yapıyorsanız abartılı olabilir (ya da eğer istediğiniz gerçekten XML nesne modeli için doğrudan bir ilişki yok ise). XmlSerializer
ile başka bir sorun değişmez tür seri hale getirmek gibi değil her şey, ortak bir alıcı olmalıvepasör bu durumda fazla XmlSerializer
kullanarak kazanmış değilsin IXmlSerializable
uygulayarak hepsini Kendin yaptığın sürece).
Nasıl C rasgele alfanümerik dizeleri o...
Nasıl birden fazla düğme django formu ...
MySQL ile nasıl bir sütun tablo içinde...
Nasıl Apple hakkında tweetler ayırt et...
Nasıl ne'in son kez bu yana değiş...