Esiste una funzione che rende stringa da PHP simpleXMLElement?SimpleXml per stringare
risposta
È possibile utilizzare il metodo SimpleXMLElement::asXML()
per raggiungere questo obiettivo:
$string = "<element><child>Hello World</child></element>";
$xml = new SimpleXMLElement($string);
// The entire XML tree as a string:
// "<element><child>Hello World</child></element>"
$xml->asXML();
// Just the child node as a string:
// "<child>Hello World</child>"
$xml->child->asXML();
È possibile utilizzare il metodo asXML
come:
<?php
// string to SimpleXMLElement
$xml = new SimpleXMLElement($string);
// make any changes.
....
// convert the SimpleXMLElement back to string.
$newString = $xml->asXML();
?>
realtà asXml() converte la stringa in XML come nome dice:
<id>5</id>
Questo verrà visualizzato normalmente su una pagina Web ma sarà causare problemi quando si corrispondono valori con qualcos'altro.
È possibile utilizzare strip_tags funzione per ottenere il valore reale del campo, come:
$newString = strip_tags($xml->asXML());
PS: se si lavora con numeri interi o numeri di galleggiamento, è necessario convertirlo in intero con intval() oppure floatval().
$newNumber = intval(strip_tags($xml->asXML()));
È possibile utilizzare casting:
<?php
$string = "<element><child>Hello World</child></element>";
$xml = new SimpleXMLElement($string);
$text = (string)$xml->child;
$ testo sarà 'Ciao Mondo'
Funziona per me perché non inserisce i tag, grazie – Andrew
È possibile utilizzare ->child
per ottenere un elemento figlio di nome bambino.
Questo elemento conterrà il testo dell'elemento figlio.
Ma se si prova var_dump()
su quella variabile, si vedrà che non è in realtà una stringa PHP.
Il modo più semplice per farlo è eseguire un strval(xml->child);
che lo convertirà in una vera stringa PHP.
Questo è utile quando si esegue il debug durante il looping dell'XML e si utilizza var_dump()
per verificare il risultato.
Quindi $s = strval($xml->child);
.
Ecco una funzione che ho scritto per risolvere questo problema (supponendo che il tag non abbia attributi). Questa funzione di tenere la formattazione HTML nel nodo:
function getAsXMLContent($xmlElement)
{
$content=$xmlElement->asXML();
$end=strpos($content,'>');
if ($end!==false)
{
$tag=substr($content, 1, $end-1);
return str_replace(array('<'.$tag.'>', '</'.$tag.'>'), '', $content);
}
else
return '';
}
$string = "<element><child>Hello World</child></element>";
$xml = new SimpleXMLElement($string);
echo getAsXMLContent($xml->child); // prints Hello World
Si tratta di un vecchio post, ma i miei risultati potrebbero aiutare qualcuno.
Probabilmente a seconda del feed xml potrebbe/non può essere necessario utilizzare __toString(); Ho dovuto usare __toString() altrimenti restituisce la stringa all'interno di SimpleXMLElement. Forse ho bisogno di approfondire ulteriormente l'oggetto ...
- 1. Come stringare più TextReader insieme?
- 2. Utilizzo di SimpleXML per caricare l'URL remoto
- 3. Attributi SimpleXML alla matrice
- 4. attributi php SimpleXML mancano
- 5. PHP namespace simplexml problems
- 6. PHP SimpleXML nuova riga
- 7. PHP SimpleXML ottenere InnerXml
- 8. modifica XML con simpleXML
- 9. PHP - errore di analisi SimpleXML
- 10. alternative a simpleXML per l'analisi di file xml con PHP
- 11. È possibile utilizzare simplexml per copiare tramite html?
- 12. Converti SimpleXML in DOMDocument, non DOMElement
- 13. Come serializzare/non serializzare un oggetto SimpleXML?
- 14. Come salvare l'oggetto SimpleXML modificato su file?
- 15. namespace aggiuntivo Impossibile con phps SimpleXML
- 16. PHP, SimpleXML, decodifica le entità in CDATA
- 17. Disappearing attributi in PHP SimpleXML Object?
- 18. SimpleXML: aggiungi un albero ad un altro
- 19. PHP SimpleXML, come impostare gli attributi?
- 20. Come verificare se l'elemento esiste con SimpleXML?
- 21. Ordinamento di una matrice di oggetti SimpleXML
- 22. Parse XML con Namespace usando SimpleXML
- 23. Tag di dichiarazione XML con SimpleXML
- 24. Eccezione Costruttore SimpleXML - Impossibile creare Inner Class
- 25. Loop attraverso un oggetto XML con SimpleXML
- 26. L'oscuramento di Proguard si sta rompendo simplexml
- 27. Ottenere valore effettivo da PHP Nodo SimpleXML
- 28. PHP SimpleXML XPath: contiene e la posizione
- 29. PHP SimpleXML: inserire nodo in certa posizione
- 30. comprime il vettore del sigaro per stringare o comprimere il vettore di carattere in stringa con i rispettivi numeri
Che tipo di corda vuoi? –