Beautiful Soup을 사용하여 xml 파일을 구문 분석하고 있지만 빈 요소를 구문 분석 할 때 일관성없는 동작을 발견했습니다. 나는. b
태그가 아니라 초에서, 첫 번째 경우에서 a
태그 내에 있는지Beautiful Soup에서 빈 요소 오류가 발생했습니다.
from BeautifulSoup import BeautifulSoup
s1 = "<c><a /><b /></c>"
s2 = "<c><a></a><b></b></c>"
soup1 = BeautifulSoup(s1)
soup2 = BeautifulSoup(s2)
print soup1
# <c><a><b></b></a></c>
print soup2
# <c><a></a><b></b></c>
참고. 나는 XML 사양이 s1
과 s2
은 동등하다는 것을 의미한다고 생각했다.
내가 어떻게 처리 할 수 있을지에 대한 의견이 있으십니까?
'a'와 'b'는 임의로 선택할 수 있습니다. 나는 (X) HTML이 아닌 XML 태그로 작업하고있다. 또한 공간을 추가해도 차이가 없습니다. – BrT
BrT : BeautifulSoup는 (X) HTML 구문 분석기이며 XML 구문 분석기는 아닙니다. 이 때문에 그것은 의미가있는 요소에 대해 자동 닫기 태그 만 지원합니다. 범용 XML 파싱의 경우 __ ['xml.dom.minidom'] (http://docs.python.org/library/xml.dom.minidom.html#module-xml.dom.minidom) __을 사용하십시오. 자체 마감 태그를 지원하는지 여부는 확실하지 않지만, 그렇지 않은 경우 항상 정규식을 대체 할 수 있습니다. – orlp
아, 미안, 나는 BeautifulSoup에 대해 깨닫지 못했다. 나는 minidom을 살펴볼 것이다. 감사! – BrT