2012-05-11 2 views
0

Я хочу проанализировать XML-файл. Он бросает исключение при создании объекта:Неустранимая ошибка при анализе XML с использованием XPath в Java

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

Вам нужно xmlns с описанием пространства имен UDF. – 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

Смежные вопросы