2009-07-17 4 views
17

XML 스프레드 시트 2003 형식으로 저장된 Excel에서 큰 (90MB) XML 파일이 있습니다.XML 유효성을 검사하는 빠른 방법/깨진 지점 확인

Line Number 790402, Column 65: 
<Cell ss:StyleID="s18"><Data ss:Type="String">Here's some data I&#5;?Bnternational</Data></Cell> 

내 XML을 구문 분석하고 파이어 폭스와 유사한 방식으로, 잘못 걸 말해주지 도구가 있습니까 : 파이어 폭스는이 같은 메시지를 뱉어 수 있도록 그것은 다양한 유효하지 않은 데이터를 포함? 파이어 폭스는 구문 분석시 매우 느리다. (아마 기억하기에 좋은 탐색 가능한 트리로 렌더링 할 준비가되어 있기 때문이다.) XSD에 대한 유효성 검사에 신경 쓰지 않고 XML이 올바른 형식인지 여부를 알고 싶습니다.

+0

의 중복 가능성 (http://stackoverflow.com/questions/124865/xml-schema-xsd-validation-tool) – kenorb

+2

아니 그렇지 않아 -이 질문은 분명히 XSD에 대한 유효성 검사가 아니라 XSD의 유효성 확인에 관한 것임을 분명히 언급합니다. –

답변

36

여기에는 xmllint이라는 Linux 명령이 있습니다. 매우 빠르며 barfing없이 훌륭한 파일을 처리하고 유용한 유효성 검사 오류 메시지를 제공합니다.

+2

멋진 것들. 유효성 확인도 지원됩니다 ... 내가 어떻게 그것 없이는 살 수 있습니까? +1 – Boldewyn

+0

--format 옵션도 매우 편리합니다. – skaffman

2

다른 언어의 기능을 사용할 수 있습니다. 예 : 파이썬에서 두 줄짜리 코드 :

import xml.dom.minidom as dom 
dom.parse ('test.xml') 

이렇게하면 문제가 발생하고 상당히 효과적입니다. 나는 bash에서 꽤 잘 작동하는 XML 툴킷을 기억하지만, 지금 당장 링크를 찾을 수는 없다.

건배,

편집 :This question's answer이 더 성능이 좋은 것 때문에, DOM을 통해 SAX를 사용하여 제안했다. 즉시 사용 가능한 파이썬 스크립트는 다음과 같이 보일 것입니다 :

#!/usr/bin/env python 
import xml.sax as sax 
parser = sax.make_parser() 
parser.parse (open ('test.xml')) 

편집 2 : 내가 다시 기억,이 도구는 XMLStarlet했다. 2 년 전에 사용했을 때 꽤 좋았습니다.

+0

저도 마찬가지지만, 정말 큰 XML 파일의 경우 도구로 얻을 수있는 모든 성능에 만족할 것입니다. – Boldewyn

2

항상 XML Starlet 명령 줄 유틸리티를 사용하는 것이 좋습니다.

그들은 바로 명령 줄에서 문서 편집, 서식, 조회, 검증을 제공하고, 그들은 XPath는 등

+0

하하! 너 너무 늦었 어. 나는 그것을 단지 시간에 기억했다. ;-) – Boldewyn

+0

명백하게 큰 인상을 받았다. –

+0

예, 3 년 전, XML을 시작했을 때 커맨드 라인에서 작업하는 것이 번거 롭다. 그런 다음 XML Starlet을 발견했는데 갑자기 bash 스크립트에서 XML 작업이 정말 멋지게되었습니다. – Boldewyn

10

비아 밖으로 섹션을 자르고, 작업, 또는 정신 검사 문서의 종류에 대한 귀중한 것 다른 대답은 간단하지 : [? XML 스키마 (XSD) 유효성 검사 도구]

python -c "import sys, xml.dom.minidom as d; d.parse(sys.argv[1])" FILE 
+0

좋은 한 줄 명령! – Martlark

관련 문제