2012-05-11 6 views
0

XML 파일을 구문 분석하려고합니다.Java에서 XPath를 사용하여 XML을 구문 분석하는 중 치명적인 오류가 발생했습니다.

Document doc = builder.parse("Response.xml"); 

예외 :

[Fatal Error] Response.xml:63:67: The prefix "UDF" for element "UDF:RTSIDUDF.LIST" is not bound. 
Exception in thread "main" org.xml.sax.SAXParseException: The prefix "UDF" for element "UDF:RTSIDUDF.LIST" is not bound. 
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:249) 
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284) 
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180) 
    at tallyreqandresponse.Ledger.main(Ledger.java:38) 
Java Result: 1 

샘플 XML 코드 :

<A> 
<LANGUAGENAME.LIST> 
    <NAME.LIST TYPE="String"> 
     <NAME>ABC India (P) Ltd.,</NAME> 
    </NAME.LIST> 
    <LANGUAGEID TYPE="Number"> 1033</LANGUAGEID> 
    <UDF:RTSIDUDF.LIST DESC="`RTSIDUDF`" ISLIST="YES" TYPE="Number"> 
     <UDF:RTSIDUDF DESC="`RTSIDUDF`"> 1387</UDF:RTSIDUDF> 
    </UDF:RTSIDUDF.LIST> 
    </LANGUAGENAME.LIST> 
</A> 

이 친절하게 그것에서 나를 도와 개체를 만드는 동안이 예외가 발생합니다.

편집 주 : 추가 LANGUAGENAME.LIST 열기 태그

+1

UDF 네임 스페이스에 대한 설명이있는 xmlns가 필요합니다. – yatul

답변

2

이 XML 파서에 의해 거부되도록 귀하의 입력 마크 업이 잘 구성된 XML을 네임 스페이스되지 않습니다. 예를 들어 입력을 수정해야합니다. 또한 일치하지 않는 태그가있는 것 같다 누락 된 네임 스페이스 정의 옆에

<A> 
<NAME.LIST TYPE="String"> 
     <NAME>ABC India (P) Ltd.,</NAME> 
</NAME.LIST> 
<LANGUAGEID TYPE="Number"> 1033</LANGUAGEID> 
     <UDF:RTSIDUDF.LIST xmlns:UDF="http://example.com/" DESC="`RTSIDUDF`" ISLIST="YES" TYPE="Number"> 
         <UDF:RTSIDUDF DESC="`RTSIDUDF`"> 1387</UDF:RTSIDUDF> 
     </UDF:RTSIDUDF.LIST> 
    </LANGUAGENAME.LIST> 
</A> 
+0

xmnls에 대한 참조를 제공 할 수 있습니까? – Dhinakar

+1

형식 사양은 http://www.w3.org/TR/REC-xml-names/를 참조하십시오. 또한'xmlns : UDF = "http://example.com/"'은 예를 들어, URL을 관련시킬 수 없도록 형식을 인식하지 못한다는 점에 유의하십시오. –

1

:

</LANGUAGENAME.LIST> 

에는 해당 여는 태그가 없습니다.

Google xml namespaces의 경우 좋은 링크를 많이 얻을 수 있습니다 (예 : here).

+0

죄송합니다 .. 지금 업데이트 됨 – Dhinakar

관련 문제