0

I have a XML like that :

<DescriptionsComplementaires>
    <DetailDescriptionComplementaire lang="fr" libelle="Descriptif" type="16.01.04">
        <Description lang="fr" libelle="Tarifs en clair" type="16.02.67">Gratuit</Description>
    </DetailDescriptionComplementaire>
    <DetailDescriptionComplementaire lang="fr" libelle="Descriptif" type="16.01.04">
        <Description lang="fr" libelle="Présentation, descriptif commercial" type="16.02.30">Chaussure de marche conseillées. De 12h à 14h sur présentation du ticket remis au départ: Apéritif offert par la commune des Haies Assiette dégustation de produits du terroir offerte pas la communauté de communes. Petit marché de producteurs locaux. Animations et stands d'information. Exposition "les 100 paniers du monde" Café et buvette. 
        </Description>
    </DetailDescriptionComplementaire>
</DescriptionsComplementaires>
    ........

How can i retrieve item with libelle="XXX" in php ? I use DOMDocument().

Edit :

$dom = new DOMDocument;
$dom->load('(629)_ListeOI_fr_20120720_043502.xml');
$attr = "Présentation, descriptif court";
$query = "//*[@libelle='{$attr}']";
$xpath = new DOMXPath($dom);
$entries = $xpath->query($query);

foreach ($entries as $entry) {
    //i don't know what to do here for display items
}
4

2 回答 2

0

使用 PHP 的 SimpleXML::XPath http://php.net/manual/en/simplexmlelement.xpath.php而不是您的方法。您的代码将被简化,看起来像这样:

$xml = new SimpleXMLElement($xmlStr); 
$res = $xml->xpath("//*[@libelle=XXX]"); 
print_r($res); 
于 2012-07-24T12:10:50.173 回答
0

DomDocument xpath

$dom = new DOMDocument;
$dom->loadXML($xml_string);
$attr = "Descriptif";
$query = "//*[@libelle='{$attr}']";
$xpath = new DOMXPath($dom);
$entries = $xpath->query($query);

迭代结果:http ://www.php.net/manual/en/domxpath.query.php

于 2012-07-24T12:19:52.763 回答