¿Hay alguna función que haga una cadena de PHP simpleXMLElement?SimpleXml en la cadena
Respuesta
Usted puede utilizar el método SimpleXMLElement::asXML()
de lograr esto:
$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();
Usted puede utilizar el método asXML
como:
<?php
// string to SimpleXMLElement
$xml = new SimpleXMLElement($string);
// make any changes.
....
// convert the SimpleXMLElement back to string.
$newString = $xml->asXML();
?>
En realidad asXML() convierte la cadena en XML como su nombre lo dice:
<id>5</id>
Esto se mostrará normalmente en una página web, pero lo hará causa problemas cuando se combinan los valores con otra cosa.
Es posible utilizar strip_tags funcionan para obtener el valor real del campo como:
$newString = strip_tags($xml->asXML());
PD: si se está trabajando con números enteros o flotantes, es necesario convertirlo en número entero con intval() o floatval().
$newNumber = intval(strip_tags($xml->asXML()));
Puede utilizar la fundición:
<?php
$string = "<element><child>Hello World</child></element>";
$xml = new SimpleXMLElement($string);
$text = (string)$xml->child;
$ texto será 'Hola mundo'
Funciona para mí porque no pone las etiquetas, gracias – Andrew
Puede utilizar ->child
para obtener un elemento hijo llamado niño.
Este elemento contendrá el texto del elemento niño elemento.
Pero si prueba var_dump()
en esa variable, verá que en realidad no es una cadena de PHP.
La manera más fácil de evitar esto es realizar un strval(xml->child);
que lo convertirá en una cadena de PHP real.
Esto es útil cuando se depura cuando se hace un bucle en su XML y usando var_dump()
para verificar el resultado.
So $s = strval($xml->child);
.
Aquí hay una función que escribí para resolver este problema (suponiendo que la etiqueta no tenga atributos). Esta función mantendrá el formato HTML en el 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
Esta es una publicación anterior, pero mis hallazgos podrían ayudar a alguien.
Probablemente dependiendo de la alimentación xml puede que necesite/no necesite usar __toString(); Tuve que usar __toString(), de lo contrario, devolvería la cadena dentro de un SimpleXMLElement. Tal vez deba profundizar en el objeto ...
- 1. PHP SimpleXML obtener InnerXml
- 2. "¿A la señal" @ en el objeto SimpleXML?
- 3. Atributos de SimpleXML en Array
- 4. Framework SimpleXml - colecciones incrustadas
- 5. simplexml propiedad de matriz
- 6. SimpleXML vs DOMDocument rendimiento
- 7. editar XML con simpleXML
- 8. PHP SimpleXML + Obtener Atributo
- 9. PHP SimpleXML nueva línea
- 10. PHP namespace simplexml problems
- 11. Error de deserialización SimpleXML en Android
- 12. Algo similar a PHP SimpleXML en Python?
- 13. ¿Cómo callar simpleXML en datos mal formados?
- 14. PHP - error de análisis SimpleXML
- 15. Cómo recorro un objeto SimpleXML en PHP
- 16. PHP SimpleXML: insertar nodo en cierta posición
- 17. Convertir SimpleXML en DOMDocument, no DOMElement
- 18. Atributos de desaparición en PHP Objeto SimpleXML?
- 19. Ofuscación Proguard está rompiendo simplexml
- 20. atributos php SimpleXML están desaparecidos
- 21. Forzar a un objeto SimpleXML en una cadena, independientemente del contexto
- 22. PHP SimpleXML, cómo establecer atributos?
- 23. Cómo portar la anotación de jaxb a la biblioteca simpleXml?
- 24. SimpleXml cómo establecer correctamente la codificación y xmins?
- 25. ¿Intenta obtener la propiedad de SimpleXML no objeto?
- 26. ¿Cómo serializar/deserializar un objeto SimpleXML?
- 27. SimpleXML obtener el valor de nodo
- 28. Etiqueta de declaración XML usando SimpleXML
- 29. Ordenando una matriz de objetos SimpleXML
- 30. SimpleXML - "El nodo ya no existe"
¿Qué tipo de cuerda quieres? –