Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Sunet ambreiaj - Opel meriva z17dth

C-BooL - Magic Symphony ft. Giang...

Pret instalator

Fire lipite cu banda sub scaunul ...
 Configurare PC AMD Ryzen 9 7950x3d

Sony Oled

[python] dependențe clase

Curatare piese de calcar
 Mediabox Vodafone TV fara cablu c...

Intrebari laptop Panasonic (Secon...

Tractor Case 4210 fum in radiator

Recomandare ciclocomputer cu GPS
 Pensiune linistita la 2-2.5h de B...

recomandare acumulator auto >...

RCCB +RCBO

Importanta numarului de RPM la ma...
 

PHP problema xpath

- - - - -
  • Please log in to reply
2 replies to this topic

#1
phpguru

phpguru

    Junior Member

  • Grup: Members
  • Posts: 127
  • Înscris: 12.07.2012
Salutare si la multi ani tuturor,

M-am lovit de o problema. Dupa ce am covertit un continut json in xml https://wlog.ro/test2.php, nu reusesc sa extrag din acel continut doar accidente. Am incercat urmatoarele:

$xml = "....";
foreach ( array_slice( $xml->xpath( '/root/alerts/type["ACCIDENT]' ), 0, 10 ) as $item ) {
print_r( $item ) ;
}


$xml = "....";
foreach ( array_slice( $xml->xpath( '/alerts/type["ACCIDENT]' ), 0, 10 ) as $item ) {
print_r( $item ) ;
}


$xml = "....";
foreach ( array_slice( $xml->xpath( '/type["ACCIDENT]' ), 0, 10 ) as $item ) {
print_r( $item ) ;
}


Imi afiseaza Fatal error: Uncaught Error: Call to a member function xpath() on string in.....
Inca ceva. Exista posibilitatea ca xpath sa contina si ACCIDENT si POLICE? Adica sa afiseze ambele variante intr-un singur cod. Separerea o fac eu.
Am ales sa incerc asa deoarece nu am reusit sa extrag din json doar ACCIDENT si POLICE, maxim 10 rezultate fiecare. Json-ul fiind acesta https://www.waze.ro/...=20.25&nocache=

#2
sftpdt

sftpdt

    Senior Member

  • Grup: Senior Members
  • Posts: 3,664
  • Înscris: 29.08.2013
$xml e un string (primitiv), nu un obiect ... nu poti apela metode pe baza lui, de aceea primesti si eroarea Fatal error: Uncaught Error: Call to a member function xpath() on string.

Probabil vrei sa intiializezi un obiect de tipul SimpleXMLElement cu ceea ce memorezi in variabila $xml.

Edited by sftpdt, 01 January 2024 - 23:12.


#3
phpguru

phpguru

    Junior Member

  • Grup: Members
  • Posts: 127
  • Înscris: 12.07.2012
Exact. Acesta este codul care converteste jsonul in xml

function arrayToXml( $array, $xml ) {
if ( $xml === null ) {
header( "Content-Type:text/plain; charset=UTF-8" ) ;
$xml = new SimpleXMLElement( "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><root></root>\n" ) ;
}
foreach ( $array as $key => $value ) {
if ( is_array( $value ) ) {
/*
if ( ! is_numeric( $key ) ) {
arrayToXml( $value, $xml->addChild( $key ) ) ;
} else {
arrayToXml( $value, $xml->addChild( "item" . $key ) ) ;
}*/
arrayToXml( $value, $xml->addChild( $key ) ) ;
} else {
$xml->addChild( $key, htmlspecialchars( $value ) ) ;
}
}
return $xml->asXML() ;
}



Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate