2017-09-07 1 views
0

잘못된 XML 파일이 생성됩니다 (잘못된 XML 파일로 연결되는 잘못된 닫힌 태그가 추가됨). 해결에 성공했습니다. 여분을 삭제하여이 문제를 아래와 같이 자바 파일에 쉘 명령의 도움으로 폐쇄 태그를 추가했습니다.잘못된 형식의 XML 파일에서 추가 된 "닫힌 태그"를 삭제하는 방법

여기
int NoofTags=Integer.parseInt(CommandExecution("grep -c \"</person>\" " + file + "").toString().trim()); 
if(NoofTags > 1) 
{ 
     CommandExecution("sed -i \'/^<\\/person>$/d\' " + file + "");//Remove all </person> tags in the XML file 
     CommandExecution("echo \'</person>\' "+ " >> " + file + "");//Adding </person> tag at end of the XMLfile 
} 

"파일"XML 파일입니다 "사람은"여기에 루트 element.Issue은이다 </person> 닫힌 태그가 XML 파일 중간에 무작위로 추가되어 원치 않는 (잘못된 형식의 XML로 이어짐) 경우. 그래서 나는 한 번에 sed 명령을 사용하여 모든 닫힌 태그를 삭제하고 파일 끝 부분에 하나의 닫힌 태그를 추가하여 루트 요소 인 "사람"을 닫습니다. 이제 문제가 해결되었습니다.

하지만 Java XML 구문 분석 기술을 사용하여이 문제를 해결할 수 없습니다.

자바 파싱 기술 (예 : DOM 파서)을 사용하여이 문제를 해결할 수 있습니까?

+0

아마도 잘못된 형식의 XML 파일을 만드는 프로세스를 수정하면 더 쉽게 해결할 수 있습니다. – GriffeyDog

+0

작성한 Java 코드를 공유 할 수 있습니까? – procrastinator

+0

java xml 파서가 XML 문서의 오류 위치를 알려줍니다 ... xml을 수정하는 데 도움이되는 정보를 사용할 수 있습니다. –

답변

0

자바에서 XML을 파싱 할 때 입력이 "잘 형성"되지 않은 경우 API의 대부분 (내가 만났던 모든 것)이 예외를 throw합니다. 이것은 입력이 "잘 형성"되지 않은 경우 기술적으로 XML이 아니기 때문입니다.

XML을 구문 분석 할 때 형식이 올바르지 않은 것을 거부하는 것이 좋습니다.

증상을 수정하는 대신 버그/문제의 원인을 해결하는 것이 좋습니다.

내 제안은 XML 생성을 수정하는 것입니다.

+0

제안 해 주셔서 감사합니다. 나는 당신이 제안한대로 이행 할 것입니다.하지만이 문제를 임시로 해결해야합니다. 자바 XML 파싱 기술의 도움으로 추가 된 닫힌 태그를 삭제하는 방법을 제안 해 주시겠습니까? –

+0

XML을 구문 분석하기 위해 여러 API를 사용했으며 구조가 잘못되었을 경우 예외를 던졌습니다. 잘못된 끝 태그의 위치를 ​​파악하기위한 예외적 인 단서를 찾아야하지만 올바른 태그를 제거하는 데 도움이됩니다. 당신의 문자열. 이것은 좋은 해결책은 아니지만 올바르게 고정하는 것만 큼 어려울 수도 있습니다. – MartinByers

관련 문제