0

私はそのようなXMLを持っています:

<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>
    ........

PHPでlibelle="XXX"を使用してアイテムを取得するにはどうすればよいですか?DOMDocument()を使用しています。

編集 :

$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 ::XPathhttp://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 に答える