2010-11-29 10 views
0

xml 항목을 포맷하려고하는데 오류가 발생하지 않고 xmltextreader를 사용할 수 있습니다. 열기 또는 닫기 태그가 없다는 것을 알리는 이벤트에서 기본 머리글과 바닥 글을 추가했습니다. 불법 문자를 제거하고 유니 코드를 확인하지만 항목이 누락되어 오류가 발생하는 경우 항상 문제가 발생합니다. 루트 수준의 데이터가 올바르지 않습니다. 항목이 유효하지 않은지 확인하고 항목이 정리 프로세스를 통과했거나 일치하지 않는지 확인합니다 태그 어딘가에. 이제 정리 프로세스를 시작하기 전에 내 xml을 개별 항목으로 분할하는 데XML 정리 - 일치하지 않는 태그

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

을 사용합니다. 다음은 기본 헤더입니다.

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>" 

답변

2

를 작동하는 내가 얻을 수 있도록 타의 추종을 불허하는 태그를 감지하고 정리 할 수있는 .NET Framework의 모든 도구 난 당신이 솔루션을 잘못된 방향으로 찾고있는 생각이있다 : 필요한 것은 IXmlSerializer를 체크 아웃하는 것입니다. 이 문서 밖으로

검사 : Proper way to implement IXmlSerializable?

내 접근 방식은, 엔트리 객체를 만들고 그것을 직렬화 확인하고 시리얼을 통해 읽을하는 것입니다.

CleanedEntry라는 다른 직렬화 된 개체를 만들고 해당 개체를 생성자에 지정합니다.

입력에 오류가 전혀없는 경우이 작업을 매우 쉽게 할 수 있어야합니다.

(물론 이것은 소스가 어떻게 생겼는지, 무엇을하고 싶은지에 따라 달라집니다.) 대답이 흐릿하게 보일 경우 예상되는 입출력 예를 들어주세요. 그 위에. (시간이 있다면))

관련 문제