2014-11-20 16 views
0

Я хотел бы создать dom со следующей структурой.Создать xmlns с префиксом с помощью XmlElement

<CreateImport xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    <XmlData> 
    ...other child nodes 
    </XmlData> 
</CreateImport> 

Я знаю, как создать XmlElement с нормальным пространством имен, как

<CreateImport xmlns="http://www.w3.org/2001/XMLSchema-instance"> 

Но теперь мой xmlns имеет префикс i, и я хочу добавить, что программно моей XmlDocument. Я смутился над XElement vs XmlElement. Первый не может иметь ребенка типа XmlElement.

ответ

1

XDocument, XElement и т. Д. Используются в Linq To XML. Но они также могут быть использованы для создания XML-документов более простым способом, чем, например, с XmlDocument. В вашем случае вы можете написать что-то вроде этого:

XElement root = new XElement("CreateImport", new XAttribute(XNamespace.Xmlns + "i", "http://www.w3.org/2001/XMLSchema-instance"), 
          new XElement("XmlData", 
              new XElement("Child1"), 
              new XElement("Child2"))); 

Вы можете использовать root.Save("myxml.xml"), чтобы сохранить это в файл. Это создаст следующий XML:

<?xml version="1.0" encoding="utf-8"?> 
<CreateImport xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
    Content 
</CreateImport> 

Вы можете прочитать http://msdn.microsoft.com/en-US/library/bb387098.aspx для более подробной информации и примеров.

+0

OK спасибо. но как добавить элемент 'XmlData' в качестве дочернего? Я не собираюсь сохранять эти документы где угодно. Я должен отправить его на веб-службу в виде строки. – Disasterkid

+1

Я отредактировал свой ответ. Но, пожалуйста, см. Прилагаемую ссылку для получения дополнительной информации. И, пожалуйста, поддержите и примите ответ, если он вам поможет. –

Смежные вопросы