2010-11-21 45 views
1
使用VB .net's XmlTextWriter的

2问题VB网的XMLWriter的

代码开始的XmlWriter

我写的东西到一个XML文件是:

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 =”打开“到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更换空我得到的错误:

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

的DOCTYPE DEF的结果应如:

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

Thanks in提前寻求你的帮助!

回答

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#的的VB.NET等价物是Nothing。该关键字指定值类型的默认值或引用类型的空值。

除非您正在处理数据库,否则不应使用System.DBNullDBNull代表未初始化的变体或不存在的数据库列。它是而不是相当于Nothingnull。我同意你收到的第一个错误信息充其量是令人困惑的。

所以,相反,该行写文档类型的XML文件应该是:

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

这将产生:

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

哇。你对这两个问题都是正确的。谢谢! – PeeHaa 2010-11-21 16:09:20

1

我回答关于“空” - 这就是所谓的“无”在VB.net

+0

如果我的代表处是够高,我会投你了!谢谢 – PeeHaa 2010-11-21 16:10:21