J'ai un élément de schéma XML comme ceci:DOM4J XPath distinguer une chaîne vide ou vide
<xs:element type="xs:string" name="IsActive" minOccurs="0"> </xs:element>
J'utilise dom4j XPath pour évaluer l'élément.
Il semble impossible de déterminer si l'élément est présent dans le document XML ou si sa valeur est simplement ""
.
Je veux <IsActive>
d'être soit, 1) ""
2) "anyvalue1"
3) "anyvalue"
Je voudrais aussi savoir si <IsActive>
est présent.
XPath valuePath;
Node obj = (Node)valuePath.selectSingleNode(requestElement);
obj.getText()
retourne toujours ""
, même si <IsActive>
n'est pas présent.
valuePath.valueOf(requestElement); // does the same
Donc ma question est: Comment distinguer les chaînes vides et les chaînes vides?
Ceci est juste mais les explications XPath et Dom4j manquantes: OP doit tester l'ensemble de nœuds vide; il semble qu'il n'y ait pas de résultat 'null' pour la méthode' selectNodes' ni de test de nœud vide pour la classe 'Node' dans Dom4j; il existe une méthode 'isEmpty' pour la classe' List'. En outre, le casting 'Node' de la classe n'est pas nécessaire (et peut-être faux, je n'ai pas testé) –
@Alejandro, oups, vous avez raison sur le casting ... c'est faux. Corrigé - merci. – LarsH