2008-10-28 7 views
0

connaissez-vous un xpath non strict pour java? (Je ne veux pas vérifier dtd et schéma) et ce serait cool si elle ne se soucie pas de xml correct.pas strict xpath pour java

Répondre

1

Vous n'avez pas besoin de schéma XML valide pour utiliser XPath. Pour XML non-formé, alors je pense que vous avez deux options:

  • générer un arbre DOM valide à partir du fichier. Suggérer de sucer le fichier via JTidy ou TagSoup. Une fois que vous avez cela, vous pouvez utiliser XPath comme d'habitude.
  • générer un autre modèle en forme d'arbre, puis utiliser un navigateur personnalisé pour Jaxen XPath. (Jaxen vous permet d'utiliser XPath sur n'importe quel modèle).
0

Ok, tout d'abord, "xml correct" peut être interprété de plusieurs façons. Si vous voulez dire "non-bien formé" (équerres manquantes, chevauchement des éléments, etc.), aucune version de xpath ne ferait probablement quelque chose d'utile avec cela. Vous seriez mieux avec une sorte d'expressions régulières. Si votre XML n'est pas bien formé, j'espère que vous avez une idée de la façon dont il ne sera pas bien formé, sinon vous n'avez aucun espoir d'obtenir quoi que ce soit avec. Si vous voulez dire "invalide", ce qui signifie simplement qu'il ne valide pas contre un schéma ou une DTD, vous pouvez utiliser des prédicats comparés à la fonction "nom-local()". Par exemple, si vous voulez trouver l'élément «/foo/bar », en ignorant les schémas, votre XPath ressemblerait à ceci:

/*[local-name()='foo']/*[local-name()='bar'] 
Questions connexes