2010-11-29 3 views
0

Я пытаюсь отформатировать записи XML, которые у меня есть, чтобы я мог использовать xmltextreader без ошибок. Я добавил верхний и нижний колонтитулы по умолчанию в том случае, если я заметил, что нет открывающих или закрывающих тегов. Я удаляю недопустимые символы и проверяю на unicode, но всегда обнаруживаю ошибку, когда запись проскальзывает и выдает ошибку: данные на корневом уровне недействительны , и когда я проверяю, что запись прошла через процесс очистки или просто имеет непревзойденный где-нибудь. Теперь я используюОчистка XML - непревзойденные теги

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, которые могут обнаруживать и очистки непарных тегов, так что я могу получить эту работу

ответ

2

Я думаю, что вы ищете в неправильном направлении для решения :) Я думаю, что вам нужно проверить IXmlSerializer.

проверить эту статью: Proper way to implement IXmlSerializable?

Мой подход должен был бы создать объект ввода, сделать его сериализации, и читать его через сериализатором.

Создайте еще один сериализованный объект с именем CleanedEntry и укажите объект записи в конструкторе.

Если вход никогда не содержит ошибок, вы должны быть в состоянии сделать эту работу довольно легко.

(конечно, это немного зависит от того, как выглядит источник и что вы хотите с ним делать.) Просьба привести пример ожидаемого ввода/вывода, если мой ответ кажется туманным, и я попытаюсь разработать в теме. (если у меня есть время;))

Смежные вопросы