XPath - kök düğüm özelliklerini alın

1 Cevap php

Böyle bir temel yapısı ile bir XML belge var:

<?xml version="1.0" encoding="UTF-8" ?>
<records timestamp="1264777862">
<record></record>
<record></record>
<record></record>
<record></record>
</records>

Ben bugüne kadar aşağıdaki kullanarak oldum:

$doc = new DOMDocument();
$doc->load('myfile.xml');
$xpath = new DOMXPath($doc);
$timestamp = $xpath->query("/records@timestamp");

Ama bu bana bir ifade geçersiz hata verir.

Ne kök damgası niteliğini elde etmek için kullanmak doğru PHP / XPath ifadesi sözdizimi olurdu?

Herhangi bir tavsiye takdir.

Teşekkürler.

1 Cevap

Mevcut PHP kodu nedir? Eğer DOMDocument kullanıyor musunuz? SimpleXML?

Doğru XPath ifadesi 'string (/ kayıt / @ damgası)' olduğunu

For SimpleXML see http://php.net/manual/en/simplexmlelement.xpath.php e.g.

<?php
$string = <<<XML
<records timestamp="1264777862">
<record></record>
<record></record>
<record></record>
<record></record>
</records>

XML;

$xml = new SimpleXMLElement($string);

$result = $xml->xpath('string(/records/@timestamp)');

while(list( , $node) = each($result)) {
    echo $node,"\n";
}

?>

Ve DOMXPath görmek için http://www.php.net/manual/en/domxpath.evaluate.php

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// our query is relative to the records node
$query = 'string(/records/@timestamp)';

$timestamp = $xpath->evaluate($query);
echo $timestamp ."\n";

?>

EDIT
See edit above. Need to cast to string in the xpath expression