我使用VB .net的XmlTextWriter
将内容写入XML文件启动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)
是否可以将param =“on”添加到XML文件的第一行?所以它看起来像:
<?xml version="1.0" encoding="ISO-8859-1" param="on"?>
下一个问题可能是一个愚蠢的问题:)但我无法弄明白。 我尝试将文档类型添加到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.
但是当我尝试用System.DBNull替换null时,我收到错误:
'DBNull' is a type in 'System' and cannot be used as an expression.
doctype def的结果应该是:
<!DOCTYPE Test SYSTEM "test/my.dtd">
提前感谢您的帮助!
答案 0 :(得分:3)
问题1:
您尝试执行的操作是将"processing instruction"附加到XML文件中。处理指令(PI)是一种对特定于应用程序的信息进行编码的标记,从"<?"
开始到"?>"
结束。
要将PI添加到XML文件,您需要使用XmlTextWriter
类的WriteProcessingInstruction
method。每个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:
C#的null
的VB.NET等价物是Nothing
。此关键字指定值类型的默认值,或引用类型的空值。
除非您正在处理数据库,否则不应使用System.DBNull
。 DBNull
表示未初始化的变体或不存在的数据库列。 不等同于Nothing
或null
。我同意您收到的第一条错误消息充其量是令人困惑的。
因此,将DocType写入XML文件的行应该是:
XMLobj.WriteDocType("Test", Nothing, "test/my.dtd", Nothing)
将产生:
<!DOCTYPE Test SYSTEM "test/my.dtd">
答案 1 :(得分:1)
我回答“null” - 它在VB.net中被称为“Nothing”