2016-03-02 3 views
0

Я меняю свой код с vbs на C#, но у меня проблема с XMLwriter, как использовать XML-запись для получения такого вывода в XML.file: ??Как написать пространство имен в элементе с XmlWriter

У меня есть такой код:

using (XmlWriter writer = XmlWriter.Create(Form1.systemDrive + "\\unattend.xml")) 
{ 
    writer.WriteStartDocument(); 
    writer.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); 
    writer.WriteStartElement("unattend"); 
    writer.WriteAttributeString("xmlns", "urn:schemas-microsoft-com:unattend"); // <<<<<<< Gives an error 

....

+0

Можете ли вы предоставить ожидаемый выход? и какая ошибка вы получаете? – tdragon

+0

Вам нужно [использовать другую перегрузку WriteAttributeString] (https://msdn.microsoft.com/en-us/library/73z46xs1 (v = vs.110) .aspx), чтобы написать объявление пространства имен. – stuartd

+0

«Ошибка» всегда является хорошим описанием ошибки, которую вы получаете ...: -/Это просто как «Не работает». –

ответ

0

Если вы просто хотите поставить тег в автоматическом данном пространство имен, не используйте WriteAttributeString на все и просто использовать

writer.WriteStartElement("unattend","urn:schemas-microsoft-com:unattend"); 

Если пространство имен был назначен префикс, он будет использовать префикс, в противном случае он будет генерировать необходимое условие Xmlns.

Кроме того, WriteStartDocument является избыточным с WriteProcessingInstruction. Оба производят один и тот же вывод, но вы можете иметь только одну инструкцию обработки, поэтому вы можете использовать один, но не тот, и другой.

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