#c# #.net #xml #file
Вопрос:
Я пытаюсь сгенерировать/сериализовать XML-файл с пользовательским тегом на C#, и хотя я перепробовал несколько решений, я не смог найти приемлемого решения, я буду признателен за любой вклад. Файл должен выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<x:Todo>
<Id>1</Id>
<x:UserId>27</UserId>
</Todo>
Проблема в том, что я понятия не имею, как добавить x: в тег в узлах специфики.
Заранее благодарю вас за все ваши вклады. Я
Ответ №1:
Вам нужно определить пространство имен и использовать его, вот пример (отсюда):
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("XmlNamespaces.xml");
}
public void SerializeObject(string filename)
{
XmlSerializer s = new XmlSerializer(typeof(Book));
// Writing a file requires a TextWriter.
TextWriter t = new StreamWriter(filename);
/* Create an XmlSerializerNamespaces object and add two
prefix-namespace pairs. */
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("x", "http://www.cpandl.com");
// Create a Book instance.
Book b = new Book();
b.TITLE = "A Book Title";
s.Serialize(t, b, ns);
t.Close();
}
}
[XmlType(Namespace = "http://www.cpandl.com")]
public class Book
{
[XmlElement(Namespace = "http://www.cpandl.com")]
public string TITLE;
}