我尝试编写一个小程序,将数据从SQL数据库导出到XML(然后再将相同的数据导入另一个数据库)。 为此,我得到了有问题的表的架构,从表中读取所有数据,并将其放入XML结构中,以便在处理完所有表后保存。
我将XDocument
用作XML结构。
Dim result As XDocument
Dim element As XElement
Dim item As XElement
result = New XDocument(New XDeclaration("1.0", "utf-8", "yes"))
element = New XElement("table", New XAttribute("name", <variable holding the table name>))
result.Add(element)
item = New XElement("item")
element.Add(item)
item.Add(New XAttribute(<variable holding the column name>, <variable holding the column data>))
...
到目前为止,很好。
使用XDocument
似乎还要掩盖特殊字符(我想)。
但是现在我得到一个错误,因为我要导出的字符串列之一的值包含无效字符(ChrW(1)
)。在向XAttribute
添加无效数据时不会发生该错误,而是在尝试将XML内容保存到文件中或通过ToString
获取XML内容时发生。
经过数小时的数据检查,我发现哪个表和哪个数据项包含无效字符,但是如何屏蔽它们才能将其导出为XML?有任何内置方法,还是我必须自己编写?