XML清理 - 无与伦比的标签

时间:2010-11-29 15:14:33

标签: vb.net visual-studio-2008

我正在尝试格式化我拥有的xml条目,以便我可以使用xmltextreader而不会出错。我注意到没有打开或关闭标签的事件我添加了一个默认的页眉和页脚。我删除非法字符并检查unicode但我总是发现一个条目滑入的问题并给出错误: 根级别的数据无效 当我检查条目是否在清理过程中滑动或者只是在某个地方有一个无与伦比的标签时。现在我用

   Dim stringSplitter() As String = {"</entry>"}
        ' split the file content based on the closing entry tag
        sampleResults = _html.Split(stringSplitter, StringSplitOptions.RemoveEmptyEntries)

在开始清理过程之前将我的xml拆分为单独的条目。这是我的默认标题;

Private defaultheader = "xmlns=""http://www.w3.org/2005/Atom"""
    Private headerl As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbNewLine & "<entry " & defaultNameSpace & ">"
    Private footer As String = "</entry>"

.net框架中是否有任何工具可以检测和清除不匹配的标签,以便我可以使其工作

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找一个解决方案的错误方向:) 我认为你需要的是检查IXmlSerializer。

查看这篇文章: Proper way to implement IXmlSerializable?

我的方法是创建一个入口对象,使其可序列化,并通过序列化程序读取它。

创建另一个名为CleanedEntry的序列化对象,并在构造函数中指定该条目对象。

如果输入从不包含任何错误,您应该能够轻松地完成这项工作。

(当然这取决于源的外观,以及你想用它做什么。) 如果我的答案看起来模糊,请举例说明预期的输入/输出,我将尽力详细说明。 (如果我有时间;))