IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Accès à un noeud via XPath [DOM4J]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Invité
    Invité(e)
    Par défaut Accès à un noeud via XPath
    Bonjour,

    Je bloque sur une chose bête, quelque chose doit m'échapper mais je ne vois pas quoi. Je tente d'accéder à un noeud d'un document Xml via XPath mais je ne récupère que null.

    Le fichier XML :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns:tns="http://www.example.org/Extension/"
    	xmlns="http://www.w3.org/2001/XMLSchema"
    	targetNamespace="http://www.example.org/Extension/" xmlns:base="http://www.example.org/ExtendedSchema">
     
    	<import namespace="http://www.example.org/ExtendedSchema" schemaLocation="Default.xsd"></import>
     
    	<complexType name="Extension">
    		<complexContent>
    			<extension base="base:Default">
    				<sequence>
    					<element name="propertie1" type="boolean" maxOccurs="1" minOccurs="0"></element>
    					<element name="propertie2" type="string" maxOccurs="1" minOccurs="0"></element>
    				</sequence>
    			</extension>
    		</complexContent>
    	</complexType>
    </schema>

    Et le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    schema = new SAXReader().read(extension);
    System.out.println(schema.selectSingleNode("/schema")); // "org.dom4j.tree.DefaultElement@6e1408 [Element: <schema uri..."
    System.out.println(schema.selectSingleNode("/schema/complexType")); // "null"
    L'un d'entre vous sais t'il éclairer ma petite lanternne ? Merci


    Edit : Par conter si je retire la namespace par defaut : "xmlns="http://www.w3.org/2001/XMLSchema" ça fonctionne très bien...
    Dernière modification par mlny84 ; 15/04/2012 à 18h59. Motif: Ajout du préfixe

  2. #2
    Invité
    Invité(e)
    Par défaut
    Ha ben comme quoi il faut persévérer encore et encore :
    - http://www.mail-archive.com/dom4j-de.../msg01258.html

    La solution est de donner a XPath un préfixe et l'adresse du namespace par défaut et de préfixer les elements du namesapce par defaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    XPath xpathSelector = DocumentHelper.createXPath("/schema/x:element");
    		xpathSelector.setNamespaceURIs(
    				Collections.singletonMap("x", "http://www.w3.org/2001/XMLSchema"));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XPATH 1.0] accès à un élément via son xpath
    Par Mil00se dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/08/2011, 17h04
  2. [XSL] Accès à un noeud dans une boucle
    Par Trin dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 15/11/2005, 14h32
  3. problème d'accèes à un repertoire via FTP chez mon hébergeur
    Par vbcasimir dans le forum Dépannage et Assistance
    Réponses: 3
    Dernier message: 03/10/2005, 13h56
  4. Problème d'accès à une BD via ASP
    Par beegees dans le forum ASP
    Réponses: 2
    Dernier message: 08/06/2005, 12h38
  5. [VB6] détection d'accès a internet via un réseau
    Par maddog2032 dans le forum VB 6 et antérieur
    Réponses: 25
    Dernier message: 19/11/2003, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo