Question

Je ne suis pas tout à fait nouveau pour PHP ou XML mais je suis 100% nouveau pour éplucher XML avec PHP. J'ai une chaîne XML qui a plusieurs nœuds, mais les seuls que je suis insterested en sont les noeuds il y a un nombre incertain de chacun contenant une phrase comme ceci: bijoux diamant bleu par exemple dire la chaîne ressemblait à ceci:

<xml>
<pointless_node/>
<seq>
<keyword>diamond ring</keyword>
<keyword>ruby necklace</keyword>
<keyword>mens watch</keyword>
</seq>
<some_node/>
</xml>

Je veux un tableau comme ceci:

['diamond ring','ruby necklace','mens watch']

J'ai essayé de regarder le manuel PHP et juste se confondre et ne sais pas quoi faire. Quelqu'un peut-il s'il vous plaît me promener à travers comment faire? J'utilise PHP4.

MERCI!

Était-ce utile?

La solution

  

Cela transforme les mots clés $ dans un tableau de   Objets. Y at-il un moyen d'obtenir la   texte des objets?

Bien sûr, voir.

$dom = domxml_open_mem($str);
$keywords = $dom->get_elements_by_tagname('keyword');

foreach($keywords as $keyword) {
    $text = $keyword->get_content();
    // Whatever
}

Autres conseils

XML_Parser-> xml_parse_into_struct () pourrait être ce que vous cherchez. Fonctionne pour les versions Php> = 4

http://se.php.net/xml_parse_into_struct
http://www.w3schools.com/PHP/func_xml_parse_into_struct.asp

Je pense que le plus simple est:

$dom = domxml_open_mem($str);
$keywords = $dom->get_elements_by_tagname('keyword');

voir: http://www.php.net/simplexml-element-xpath Essayez la construction XPath et tableau suivant

$string = "<xml>
<pointless_node/>
<seq>
<keyword>diamond ring</keyword>
<keyword>ruby necklace</keyword>
<keyword>mens watch</keyword>
</seq>
<some_node/>
</xml>";

$xml = domxml_open_mem($xmlstr)

$xpath = $xml->xpath_new_context();
$result = xpath_eval($xpath,'//keyword');

foreach ($result->nodeset as $node)
{
     $result[] = $node->dump_node($node);
}

edit: code modifié pour refléter les exigences php 4 edit: modifié pour tenir compte du comportement mal documenté de xpath_new_context (php docs commentaires signalent l'erreur)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top