Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare bec far VW Touran 1T3

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024

Cum sterg mails din Promotions
 Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...
 Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg
 Drept de proprietate intelectuala...

Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...
 

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,665
  • Î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

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

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