J'essaye d'analyser un xml en utilisant la méthode parse
de DocumentBuilder
qui prend l'URI comme argument. Pour cela, je crée un objet String
représentant l'URI, puis appelle la méthode parse
en passant l'objet String
comme argument.SAXParseException lorsque l'URL est inexistante
L'appel de méthode parse
fonctionne correctement, renvoie un nouvel objet DOM. Toutefois, lorsque j'essaie d'imprimer l'objet DOM renvoyé, il est indiqué:
org.xml.sax.SAXParseException: Le balisage dans le document qui suit l'élément racine doit être correctement formé. L'extrait de code pour analyser le xml est comme indiqué ci-dessous:
String sURL="http://host:port/myapp/myfile.xml";
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
doc = dBuilder.parse(sURL);
Cependant, lorsque l'URL est un non-existant, la méthode d'analyse syntaxique retourne encore
org.xml.sax. SAXParseException: Le balisage dans le document suivant l'élément racine doit être bien formé.
Le xml est un xml normale, quelque chose comme indiqué ci-dessous:
<?xml version="1.0" encoding="utf-8"?>
<Data>
<ColorMessages>
<Message Color="RED">Warning: The batch color level is red. Please check it out!</Message>
<Message Color="YELLOW">Alert: This batch color level is yellow. Please stay on alert!</Message>
<Message Color="GREEN">Cool: The batch color level is green. Nice!</Message>
<Message Color="BLUE">Excellent: The batch color level is blue. Great job!</Message>
</ColorMessages>
</Data>
Toute réflexion sur la façon dont je pouvais identifier une URL inexistante au cours d'un appel de méthode parse
?
Merci.
A quoi ressemble le contenu de monfichier.xml? Il lance probablement une exception IOException en cas d'URL inexistante. http://docs.oracle.com/javase/6/docs/api/javax/xml/parsers/DocumentBuilder.html#parse%28java.lang.String%29 –
Vous avez ajouté l'exemple xml .. – ria
Je suis presque sûr l'exemple de fichier XML que vous avez posté ici n'est pas ce que vous recevez. Suivez la suggestion postée par Bill –