2012-08-15 2 views
14

나는 그 형식을 매우 압축하고 모든 태그XML - 리눅스

<PersonalData><IndividualDetails><Title>Mr</Title><Gender>Male</Gender><FirstName>Hae</FirstName><Surname>JONES</Surname><Occupation>Banker</Occupation><DateofBirth>4/6/76</DateofBirth><LastKnownAddress></LastKnownAddress><LastKnownPostCode>00145</LastKnownPostCode><OtherNames></OtherNames></IndividualDetails><OccupationDetails><Company>SD Bank</Company><CompanyAddress>Sunset Boulevard NY</CompanyAddress><ContactNo>335698457</ContactNo></OccupationDetails></PersonalData> 

처럼 함께 붙어 있습니다 제대로 태그를 포맷 할 수 있습니다 쉘에있는 명령이있는 XML 파일이 있습니다. 들여 쓰기가 아니라면 태그를 자신의 줄에 추가하는 것만으로도 내 문제를 해결할 수 있습니다.

답변

31
xmllint --format <your-xml-file> 

$ cat test.xml 
<a><b>c</b></a> 
$ xmllint --format test.xml 
<a> 
    <b>c</b> 
</a> 
$ xmllint --format test.xml > test.formatted.xml 
$ cat test.formatted.xml 
<a> 
    <b>c</b> 
</a> 
$ 
+1

echo '<a><b>c</b></a>' | tidy -xml -i -q 

생산됩니다 파일과 표준 입력/표준 출력

와 함께 작동합니다. XML의 파일 크기는 약 583MB입니다. 형식 옵션은 작은 크기의 파일에서 작동하지만 실제 파일에 적용하면 배쉬가 작업을 중단합니다. 청크 또는 기타 등등 큰 파일을 포맷하는 것에 대한 아이디어. – HardCode

+0

583 MB? 어쩌면 들여 쓰기를 위해 자신의 SAX 처리기를 구현해야합니다. –

+0

그리고 어떻게 할 수 있습니까? 이 부분을 안내해주세요. – HardCode

10
tidy -xml -i -q 

-xml - 입력 잘 XML을

-q 형성되어 지정 - 억제 불필요한 출력

-i - 들여 원소 함량

깔끔한 수 있습니다. 이것은 실제 파일에 작동하지 않습니다

 <a> 
     <b>c</b> 
    </a>