Le cloneNode() dans l'exemple minimale suivante fonctionne sur Java 1.6, mais jette un DOMException avec le code 14 sous Android 5.DOMException Cloner méthode XML Node
Code 14 selon sdk docs signifie: « NAMESPACE_ERR Si une tentative est faite pour créer ou modifier un objet d'une manière qui est incorrecte en ce qui concerne les espaces de noms. "
Est-ce que quelqu'un a une idée de pourquoi cela pourrait être? Merci d'avance!
public class M
{
public static void main(String[] args)
{
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
String text = new String("<blub></blub>");
Document document = builder.parse(new InputSource(new StringReader(text)));
document.getDocumentElement().cloneNode(true);
}
catch(DOMException e)
{}
catch(ParserConfigurationException e)
{}
catch(IOException e)
{}
catch(SAXException e)
{}
}
}
Je remarque que vous ignorez 4 types différents d'exceptions. Si vous jetez DOMException, je me demande comment vous savez que c'est l'exception que vous obtenez, ou dans quelle ligne. Dans une application de test comme celle-ci, vous souhaiterez peut-être lancer des exceptions de main au lieu d'écrire des gestionnaires vides: 'public void principal (String [] argv) throws Exception {}'. Vous pouvez ensuite voir les traces de la pile lorsque vous exécutez votre code. Il n'est pas clair à partir de votre description quelle instruction jette votre DOMException. – iter
Vous pouvez essayer de jouer avec factory.setNamespaceAware() – iter
Merci J'ai déjà vérifié, mais malheureusement, factory.setNamespaceAware() n'a aucune influence. Je me demande si quelqu'un d'autre peut reproduire le problème? Btw: Je sais quelle exception je reçois parce que j'utilise des points d'arrêt d'exception dans eclipse ou juste une seule étape dans le code. Si je "ignorer" l'exception, comment pourrais-je connaître l'état de la propriété de code à l'intérieur de l'objet d'exception e? Et quelle ligne jette l'exception est écrit dans la première ligne de ma question: "La méthode cloneNode() throws [...]" – beutelfuchs