2009-09-25 7 views
1

Je suis totalement nouveau à jquery et je regardais autour de voir si cela peut être fait. essentiellement i ont une structure d'arborescence XML qui ressemble à ceci:Puis-je utiliser jquery pour sélectionner une sous-arborescence dans une arborescence xml?

<?xml version="1.0" encoding="utf-8" ?> 
<RecentTutorials> 
    <Tutorial author="The Reddest"> 
    <Title>Silverlight and the Netflix API</Title> 
    <Categories> 
     <Category>Tutorials</Category> 
     <Category>Silverlight 2.0</Category> 
     <Category>Silverlight</Category> 
     <Category>C#</Category> 
     <Category>XAML</Category> 
    </Categories> 
    <Date>1/13/2009</Date> 
    </Tutorial> 
    <Mockup author="The Hairiest"> 
    <Title>Cake PHP 4 - Saving and Validating Data</Title> 
    <Categories> 
     <Category>Tutorials</Category> 
     <Category>CakePHP</Category> 
     <Category>PHP</Category> 
    </Categories> 
    <Date>1/12/2009</Date> 
    </Mockup> 
</RecentTutorials> 

utilisant jquery seul, puis-je sélectionner le nœud ensemble mockup/arbre avec tout le reste des enfants? J'essaie de jouer avec .text() mais je n'ai rien pu obtenir. et mon googling ne m'a pas conduit non plus. J'espère que les gars ne vous dérange pas la question stupide :)

var dom3 = parseXML(str_xml); 
var strTemp = $(dom3).find("Mockup"); 

de sorte que la sortie finale sera comme ça.

<Mockup author="The Hairiest"> 
     <Title>Cake PHP 4 - Saving and Validating Data</Title> 
     <Categories> 
      <Category>Tutorials</Category> 
      <Category>CakePHP</Category> 
      <Category>PHP</Category> 
     </Categories> 
     <Date>1/12/2009</Date> 
     </Mockup> 

merci!

Répondre

1

ce que vous aviez devrait travailler, sauf que vous ne avez pas besoin d'exécuter parseXML(), juste donner jquery la chaîne XML directement:

var strTemp = $(str_xml).find("Mockup"); 

je ne pense qu'il ya un moyen d'obtenir la chaîne brute sur, mais voici un hack si vous voulez que la chaîne: vous avez besoin d'envelopper le dom produit avec une étiquette (tout, tant qu'il ne fasse pas double emploi « mockup »):

var xmlString = $('<wrapper>').append(strTemp).html();//strTemp from above 

produit

firebug_prompt> $('<wrapper>').append($('<root><ch>test</ch><ch>test2</ch></root>')).html() 
<root><ch>test</ch><ch>test2</ch></root> 
+0

mmm, il semble que cela fera juste sortir un objet Objet dans le strTemp :(des idées pour résoudre ce problème? – melaos

+0

que faites-vous exactement? vous devriez éditer votre question avec un nouveau contenu, en disant ce que vous avez fait et comment il a échoué - sinon c'est difficile de dire ce que vous avez fait à partir d'un commentaire d'une ligne – Chii

Questions connexes