Вопрос

Я пишу вещи в файл XML с использованием XMLTexTextWriter VB .NET

Код для запуска XMLWriter:

 Dim XMLobj As Xml.XmlTextWriter
 Dim enc As System.Text.Encoding
 enc = System.Text.Encoding.GetEncoding("ISO-8859-1")
 XMLobj = New Xml.XmlTextWriter("C:\filename.xml", enc)

Можно ли добавить параметр = «на» на первую строку файла XML? Так что это будет выглядеть так:

<?xml version="1.0" encoding="ISO-8859-1" param="on"?>

Следующий вопрос может быть глупым :) Но я просто не могу понять это. Я пытаюсь добавить Doctype в файл XML, например:

<!DOCTYPE Test SYSTEM "test/my.dtd">

Однако, когда я пытаюсь установить это, я получаю некоторые ошибки.

XMLobj.WriteDocType("Test", null, "test/my.dtd", null)

Ошибка, которую я получаю:

'null' is not declared. 'Null' constant is no longer supported; use 'System.DBNull' instead.

Однако, когда я пытаюсь заменить NULL с помощью System.dbnull, я получаю ошибку:

'DBNull' is a type in 'System' and cannot be used as an expression.

Результат DOCTYPE DEF должен быть как:

<!DOCTYPE Test SYSTEM "test/my.dtd">

Заранее спасибо за вашу помощь!

Это было полезно?

Решение

Вопрос 1:

Как выглядит так, будто ты пытаешься сделать, это добавить «Обработка инструкции» к вашему XML-файлу. Инструкция по обработке (PI) - это тег, который кодирует информацию о применении, начиная с "<?" и заканчивая "?>".

Чтобы добавить Pi в свой файл XML, вам нужно использовать WriteProcessingInstruction метод принадлежащий XmlTextWriter сорт. Есть две части для каждого PI, цель и значение, и это два параметра, принимаемые WriteProcessingInstruction метод.

Итак, в вашем случае вы бы написали следующий код, чтобы добавить инструкцию обработки:

XMLobj.WriteProcessingInstruction("xml", "version=""1.0"" encoding=""ISO-8859-1"" param=""on""")

который бы произвести:

<?xml version="1.0" encoding="ISO-8859-1" param="on"?>


Вопрос 2:

VB.Net эквивалент C # null является Nothing. Отказ Это ключевое слово либо указывает значение по умолчанию типа значения или нулевое значение ссылочного типа.

Вы не должны использовать System.DBNull Если вы не имеете дело с базами данных. DBNull представляет собой неинициализированный вариант или несуществующий столбец базы данных. это нет эквивалентно Nothing или null. Отказ Я согласен, что первое сообщение об ошибке, которое вы получаете, в лучшем случае запутается.

Итак, вместо этого линия для записи Doctype к файлу XML должна быть:

XMLobj.WriteDocType("Test",  Nothing, "test/my.dtd", Nothing)

который будет производить:

<!DOCTYPE Test SYSTEM "test/my.dtd">

Другие советы

У меня есть ответ о «NULL» - это называется «ничего» в VB.NET

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top