Использование XMLWriter для создания пользовательского заголовка в C#

Я новичок в XML и очень новичок в использовании объекта XMLWriter. Мне удалось использовать его для написания «правильно сформированного» XML-файла, но после многих неудачных попыток создать необходимый заголовок, приведенный ниже, я решил прийти сюда за некоторыми знаниями.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE IDMS-XML SYSTEM "http://eclipseinc.com/dtd/IDMS-XML.dtd"> 
<IDMS-XML>
....

Вот начало моего кода (очень стандартно):

using (XmlWriter xmlWriter = XmlWriter.Create("SendXML.xml"))
{
    xmlWriter.WriteStartDocument();
    ....

Я пытался использовать такие вещи, как xmlWriter.WriteString(), чтобы принудительно ввести его, но это не помогло мне. Спасибо за любое понимание.


person Derek N    schedule 29.07.2014    source источник


Ответы (2)


Чтобы записать в файл xml, вам нужно создать XmlTextWriter, а затем создать узел для создания заголовка. Надеюсь, это немного поможет вам.

XmlTextWriter writer = new XmlTextWriter("filename",System.Text.Encoding.UTF8);                  writer.WriteStartDocument(True)

    writer.WriteStartElement("Start Element Name")
    createNode("NodeName", writer)
    writer.WriteEndElement()
    writer.WriteEndDocument()
    writer.Close()


public void createnode(String nodename, XmlTextWriter writer)
{
    writer.WriteStartElement("Name Here")
    writer.WriteString(nodename)
    writer.WriteEndElement()
}
person Chase Ernst    schedule 29.07.2014

Вы должны быть более ясны, что это за «это», которое вы пытаетесь «протолкнуть». Вы имеете в виду <!DOCTYPE ...? Это объявление типа документа, и XmlWriter имеет встроенный метод для его добавления. Чтобы создать тип документа SYSTEM, попробуйте:

xmlWriter.WriteDocType("IDMS-XML", null, "http://eclipseinc.com/dtd/IDMS-XML.dtd", null);

Если это не то, что вы имеете в виду, вы должны быть более явными.

person Dour High Arch    schedule 29.07.2014