J'ai un fichier XML qui contient des instructions de traitement sous la forme <?myinst contents ?>
. J'ai besoin de tous les avoir dans une collection, avec une seule requête DOM, si possible. Est-ce possible sans avoir l'itération sur tout l'arbre?Est-il possible d'obtenir tous les éléments d'instruction de traitement à partir du DOM
Répondre
Vous devez parcourir sur l'arbre avec xml-dom. L'implémentation que vous avez pointée utilise réellement l'itération complète même pour le getElementByID, ou pour d'autres méthodes de sélection. De meilleures implémentations utiliseraient tagName et id caches ... Si votre objectif est d'assurer une compatibilité complète (browser et nodejs), vous n'avez simplement pas d'autres options qu'un filtre basé sur la récursivité, quelque chose comme ça.
function _visitNode(node,callback){
if(callback(node)){
return true;
}
if(node = node.firstChild){
do{
if(_visitNode(node,callback)){return true}
}while(node=node.nextSibling)
}
}
function getPIs(rootNode){
var ls = [];
_visitNode(rootNode, function(node){
if(node !== rootNode && node.nodeType == 7) {
ls.push(node);
return true;
}
});
return ls;
}
Nous utilisons libxmljs et xslt pour sélectionner les choses, mais seulement pour IPs il pourrait être un surpuissant ... HTH
Bon code, merci pour cela. En parlant de cela, connaissez-vous une meilleure implémentation DOM que xmldom? J'ai beaucoup cherché et j'ai fini par choisir celui-là car c'était celui qui semblait le moins mauvais. – Mario
une secousse désolé de la tête, au moins en ce qui concerne nodejs. cela nous a causé un mal de tête aussi, donc fini avec une solution xml/xslt. libxmljs utilise la bibliothèque libxml et est performant. mais utiliser cela limitera votre solution nodejs à linux (Windows ne supporte pas node-waf, seulement node-gyp, et la libxmljs est toujours la plus ancienne basée sur node-waf). De plus, vous perdez des points communs. –
Merci pour les conseils. Salutations. – Mario
- 1. Traitement de tous les éléments d'une BlockingQueue
- 2. PHP DOM - Supprimer tous les éléments SAUF ...?
- 3. jQuery appendTo supprime tous les éléments DOM?
- 4. Récupérer tous les éléments DOM en javascript
- 5. Comment sélectionner tous les éléments du DOM sauf un élément?
- 6. Faire tous les éléments mobiles dom
- 7. Tous les éléments changent dans Arraylist - Traitement
- 8. Modifier les prototypes de tous les éléments DOM possibles
- 9. Copier tous les éléments à partir du document Word
- 10. Sélectionnez tous les éléments du DOM avec javascript sauf tous les enfants d'un élément particulier
- 11. Rotation complète et aléatoire de tous les éléments DOM
- 12. supprimer automatiquement les éléments du DOM
- 13. Afficher/masquer les éléments DOM dans tous les navigateurs
- 14. Sélectionner tous les éléments DOM jusqu'à ce que l'un des éléments DOM apparaisse
- 15. Problème avec l'index de tous les éléments correspondants dans DOM
- 16. obtenir tous les éléments DOM avec certains masque de nom
- 17. Les éléments DOM ne sont pas mis à jour à partir du contrôleur angulaire
- 18. Sortie ForkJoinPool sans traitement de tous les éléments dans ParallelStream
- 19. Supprimer tous les éléments dom avec une étiquette spécifique?
- 20. Traitement du DOM à partir du fichier auquel j'ai fait une demande de post via ajax
- 21. retourner tous les éléments DOM en utilisant une fonction réutilisable
- 22. Supprimer les éléments html du dom
- 23. Comment gérer les éléments DOM?
- 24. Evénements Jquery.Live pour les éléments onadd à dom
- 25. DOM replaceChild ne pas remplacer tous les éléments spécifiés
- 26. php DOM ne donne pas tous les éléments
- 27. Can javascript écoute "onDomChange" sur tous les éléments Dom?
- 28. Trouver tous les éléments DOM couverts par un certain élément?
- 29. CSS compte tous les éléments dans le DOM
- 30. un écouteur pour tous les éléments enfants dans l'arborescence DOM
Qu'est-ce que vous utilisez pour l'analyse XML? –
@PeterAronZentai J'utilise [xmldom] (https://github.com/jindw/xmldom). – Mario