[EMAIL PROTECTED] wrote:
Bonjour,
Merci Gael et Philippe de votre aide!
Je peux maintenant parser comme je veux mon fichier XML.
Par contre, j'ai voulu tester les deux solutions, et je n'ai réussi à mettre en
oeuvre que la solution proposée par Gael.
En effet, en utilisant celle de Philippe, j'ai l'erreur suivante:
org.apache.commons.jxpath.JXPathException: No value for xpath:
/PubmedArticleSet/PubmedArticle/MedlineCitation/PMID
<snip/>
Pour récupérer un noeud, il y a aussi l'API JXPathContext qui s'avère
très pratique à utiliser:
var xpathContext =
Packages.org.apache.commons.jxpath.JXPathContext.newContext(document.getDocumentElement());
var myData xpathContext.getValue("/your/xpath/condition[ position() != 2
]/@attribute");
C'est probablement parce que je contexte est initialisé sur l'élément
racine (getDocumentElement) et donc l'expression ne doit pas comporter
le nom de cet élément.
On peut aussi créer le contexte sur le document lui-même.
3) fonction loadDocument
function loadDocument(uri)
{
var source = null;
var resolver = null;
var parser = null;
try
{
parser =
cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE);
resolver =
cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE);
source = resolver.resolveURI(uri);
var input = source.getInputStream()
var is = new Packages.org.xml.sax.InputSource(input);
is.setSystemId(source.getURI());
return parser.parseDocument(is);
}
finally
{
if (source != null) resolver.release(source);
cocoon.releaseComponent(parser);
cocoon.releaseComponent(resolver);
}
}
Une version plus simple, et qui évite d'utiliser un parser quand on
utilise une source nativement XML (comme un "cocoon:" ou "xmldb:") :
function loadDocument(uri) {
var resolver =
cocoon.getComponent("org.apache.excalibur.source.SourceResolver");
var source = null;
var document;
try {
source = resolver.resolveURI(uri);
document =
Packages.org.apache.cocoon.components.source.SourceUtil.toDOM(source);
} finally {
resolver.release(source);
cocoon.releaseComponent(resolver);
}
return document;
}
Sylvain
--
Sylvain Wallez Anyware Technologies
http://bluxte.net http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]