2009-09-06 9 views
0

J'ai écrit un analyseur SAX. Cela fonctionne bien lorsque les valeurs attibute sont imbriquées dans des guillemets doubles. Mais si je n'utilise pas de citation, cela crée une exception. Je veux que mon analyseur analyse le fichier XML dont les valeurs d'attributs ne sont pas entre guillemets. Je veux analyser le type de fichier suivant:l'analyse d'un fichier XML en Java

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

Notez que valeur1 ne cite dans

Puis-je faire mon analyseur pour analyser le fichier ci-dessus? Si oui comment?

Répondre

6

L'analyseur SAX ne lira pas cela parce que ce n'est pas well-formed XML. Toutes les valeurs d'attribut doivent être entourées de guillemets simples ou doubles. Pour que votre analyseur le lise, vous devez le ranger/le purifier/le réparer avec une bibliothèque appropriée.

+0

En fait, le XML n'est pas bien formé. La validité fait référence à la validation par rapport à une DTD, une XSD ou tout autre type de contraintes syntaxiques appliquées à un XML. –

+0

Je voulais dire 'contraintes supplémentaires' ... Désolé. –

0

Try NekoHTML (http://nekohtml.sourceforge.net/usage.html)

par exemple

package sample; 

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

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