2 Проблемы с Xmlwriter VB Net
-
26-09-2019 - |
Вопрос
Я пишу вещи в файл 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