2014-07-24 3 views
0

일부 XML을 구문 분석하는 동안 특정 요소의 끝 태그가 있는지 확인하려고합니다. ElementTree XML API를 통해 가능합니까?Python으로 끝 태그 찾기 ElementTree XML API

샘플 XML : 예를 들어

<data> 
    <folder name="a"> 
    <folder name="b"> 
    <file name="a1"> 
    </file> 
    </folder> 
    <file name="b2"> 
    </file> 
    </folder> 
</data> 

은 : 위의 XML에 <file name="b2">에 액세스하기 전에, 나는 </folder>이 이미 발생되었음을 알 수 있어야합니다.()

는 가정

+0

에 ''이 표시되면 알고 싶습니까? –

+0

에 국한되지 않습니다. 하지만 단지입니다. 예 : VC++에서 우리는 닫는 태그의 존재 여부를 결정하기 위해 노드 유형이 "끝 노드"입니다. – user305933

+0

제 대답으로 문제가 해결되면 확인하십시오. 감사! –

답변

0

그냥 ElementTree.fromstring를 사용하는이 같은 XML 파일 :

xml1.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <data> 
     <folder name="a"> 
      <folder name="b"> 
      <file name="a1"> 
      </file> 
      </folder> 
     <file name="b2"> 
     </file> 
     </folder> 
    </data> 

xml2.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <data> 
     <folder name="a"> 
      <folder name="b"> 
      <file name="a1"> 
      </file> 
      </folder> 
     <file name="b2"> 
     </file> 

    </data> 

당신이 전화 ElementTree.fromstring(open('xml1.xml').read()), 올바르게 끝낼 것입니다. ElementTree.fromstring(open('xml2.xml').read())을 호출하면 xml.parsers.expat.ExpatError: mismatched tag이라는 오류가 발생합니다. 이는 폴더 태그가 완료되지 않았 음을 의미합니다.

이 질문에 대한 답변은 제발 확인하십시오. 감사!

+0

안녕하세요, 솔루션을 제공해 주셔서 감사합니다.하지만 제가 직면 한 문제는 다소 다릅니다. 내가 얻은 XML은 완전히 정확합니다. 다음 파일 태그에 대해 특정 결정을 내릴 수 있도록 끝 태그를 알고 싶습니다. 어쨌든 문제를 해결하기 위해 재귀를 사용했지만 여전히 태그가 닫혀 있는지 여부를 결정할 수 있는지 알고 싶습니까? – user305933