Piszę wyniki XML z wywołania API przy użyciu PHP i xpath.Ciągnięcie tekstu i atrybutu danego węzła za pomocą Xpath
$dom = new DOMDocument();
$dom->loadXML($response->getBody());
$xpath = new DOMXPath($dom);
$xpath->registerNamespace("a", "http://www.example.com");
$hrefs = $xpath->query('//a:Books/text()', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookTitle[$i] = $hrefs->item($i)->data;
}
$hrefs = $xpath->query('//a:Books', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookDewey[$i] = $hrefs->item($i)->getAttribute('DeweyDecimal');
}
Działa to, ale czy jest sposób, w jaki mogę uzyskać dostęp do tekstu i atrybutu z jednego zapytania? A jeśli tak, to w jaki sposób uzyskujesz te elementy po wykonaniu zapytania?
Czy mogę po prostu użyć elementu-> dane i element-> getAttribute, aby pobrać wyniki? –
Nie jestem pewien, jak działa biblioteka XSLT w PHP, ale możesz uzyskać ją tylko za pomocą item-> data. W każdym razie warto spróbować. –