2012-03-22 5 views
0

Я хочу, чтобы разобрать XML-файлы, которые имеют элементы, подобные этим:SAXException точкой с запятой

<element>&amp</element> 
<element>&amp;</element> 

Но SAX Parser дает мне следующее исключение при разборе:

org.xml.sax.SAXParseException: The reference to entity "amp" must end with the ';' delimiter. 
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:208) 

есть любой известный способ решения это?

Java-код, который бросает исключение заключается в следующем:

DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file); 
+1

В каком смысле это «сбежавшая полуколока»? И это ваш * фактический * XML? Короткая, но полная программа, демонстрирующая проблему, наряду с образцом XML-файла, действительно поможет. –

+0

Извините, я допустил ошибку. Теперь я исправил свой пост. – adranale

+1

Позаботьтесь о том, чтобы написать свои вопросы. Отправка людей в погоню за проблемой, когда вы просто неправильно набрали свой вопрос, раздражает. – skaffman

ответ

1

Я не могу воспроизвести это с XML вы показали (до вашего редактирования). Короткая, но полная программа:

import java.io.*; 
import javax.xml.parsers.DocumentBuilderFactory; 

public class Test { 
    public static void main(String[] args) throws Exception { 
     File file = new File("test.xml"); 
     DocumentBuilderFactory.newInstance() 
      .newDocumentBuilder() 
       .parse(file); 
    } 
} 

С файлом:

<element>&amp;</element> 

... он работает без ошибок.

Когда файл просто:

<element>&amp</element> 

... это показывает то же самое исключение вы сообщили.

Я пришел к выводу, что это правильно, и ваш файл is сломан. Посмотрите на каждое вхождение &amp в файл и найдите, где ему не хватает двоеточия.

+0

Вы правы. Мой файл содержит ' & amp' – adranale

+2

@adranale: Тогда это недопустимый XML. Почини это. И в следующий раз, поверьте, что говорит вам парсер :) –

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