2014-02-05 2 views
1

여러 개의 루트 노드가있는 XML 파일이 있습니다. 각 루트 노드가 데이터베이스의 개별 레코드에 저장되기를 원합니다. 또한 DB에 저장하는 동안 스키마로 유효성을 검사하고 유효한 경우 일부 태그 값을 가져 와서 저장합니다. 이걸 도와주세요.여러 개의 루트 노드

샘플 XML 파일 형식 :

<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
<Papermail><tags>  </tags></papermail> 
+1

그래서 할 사람이 필요합니다 ... 모든 것? 지금까지 시도한 것을 게시하십시오. –

+1

XML에 익숙하지 않아 루트 노드를 여러 개 가질 수 있습니까? 나는 그렇게 생각하지 않는다 .. –

+3

잘 형성된 XML은 다중 루트 노드를 가지고 있지 않다. –

답변

1

당신이 "루트"요소를로드 할 때 파일에서 텍스트를 포장 간주 되세요.

<root> 
    <Papermail> 
     <tag... 
    </Papermail> 
</root> 

이 방법을 사용하면 파일 시스템에 잘못된 XML을 저장할 수 있습니다,하지만 당신은 그것을로드 할 때와 랩, 그것은 당신이 확인하고 작업 할 수 유효한 XML된다.

+1

_ 당신이 생각한 것은 그의 특정 질문에 대한 답이 아닙니다. 이것은 상속 자이어야합니다 –

+2

흠 ... 제가이 구절에서 왔을 때는 단순히 공손한 가르침입니다 ... 또한 ... 이것이 문제의 해결책이기 때문에 나는 그것이 있어야한다고 생각하지 않습니다. 의견. –

4

ConformanceLevelFragment으로 설정된 XmlReader을 생성하십시오. 이제 정상적으로 각 최상위 요소를 반복 할 수 있습니다. 이 설정은 XML 판독기에 단일 루트 노드 일 필요는 없다는 것을 알려줍니다. 여기에서 XML로 원하는 모든 작업을 수행 할 수 있습니다. 또는 ReadSubtree 메서드를 사용하여 최상위 요소 인 XmlDocument을 읽고 XPath를 사용하고 XML을 deserialize 할 수 있습니다.

관련 문제