2009-09-06 4 views
0

Я написал SAX-парсер. Он отлично работает, когда значения attibute вложены в двойные кавычки. Но если я не использую цитату, она выдает исключение. Я хочу, чтобы мой синтаксический анализатор разбирал XML-файл, значения атрибутов которого не входят в кавычки. Я хочу, чтобы разобрать следующий тип файла:разбор XML-файла в java

<root> 
    <tag1 attribute1=value1 > my data </tag1> 
</root> 

Обратите внимание, что value1 не внутри кавычек

Может ли я сделать мой парсер для разбора вышеуказанного файла? Если да, то как?

ответ

6

Анализатор SAX не будет читать это, потому что это не well-formed XML. Все значения атрибутов должны быть заключены в кавычки с одним или двумя символами.

Чтобы убедиться, что ваш синтаксический анализатор прочитал его, вам нужно будет убрать/очистить/исправить его с помощью соответствующей библиотеки.

+0

Фактически, XML не является корректным. Валидность относится к валидации в отношении DTD, XSD или любых других синтаксических ограничений, применяемых к XML. –

+0

Я имел в виду «дополнительные ограничения» ... Извините. –

0

Попытка NekoHTML (http://nekohtml.sourceforge.net/usage.html)

например,

package sample; 

import org.apache.xerces.parsers.AbstractSAXParser; 
import org.cyberneko.html.HTMLConfiguration; 

public class HTMLSAXParser extends AbstractSAXParser { 
    public HTMLSAXParser() { 
     super(new HTMLConfiguration()); 
    } 
}