Storing SimpleXMLElement values in $_SESSION does not work. Saving the results as an object or individual elements of the object will result in the dreaded "Warning: session_start() [function.session-start]: Node no longer exists" error.
For example, this does not work:
$xml = new SimpleXMLElement($page);
$country = $xml->Response->Placemark->AddressDetails->Country->CountryNameCode;
$_SESSION['country'] = $country;
This will work:
$_SESSION['country'] = (string) $country;
SimpleXML
- Introduction
- Installation/Configuration
- Constantes pré-définies
- Exemples
- Fonctions SimpleXML
- SimpleXMLElement->addAttribute() — Ajoute un attribut à l'élément SimpleXML
- SimpleXMLElement->addChild() — Ajoute un élément enfant au noeud XML
- SimpleXMLElement->asXML() — Retourne une chaîne XML basée sur un élément SimpleXML
- SimpleXMLElement->attributes() — Identifie les attributs d'un élément
- SimpleXMLElement->children() — Trouve les enfants d'un noeud XML
- SimpleXMLElement->__construct() — Crée un nouvel objet SimpleXMLElement
- SimpleXMLElement->getDocNamespaces() — Retourne les espaces de noms déclarés dans un document
- SimpleXMLElement->getName() — Récupère le nom d'un élément XML
- SimpleXMLElement->getNamespaces() — Retourne les espaces de noms utilisés dans un document
- SimpleXMLElement->registerXPathNamespace() — Crée un contexte préfixe/ns pour la prochaine requête XPath
- SimpleXMLElement->xpath() — Exécute une requête Xpath sur des données XML
- simplexml_import_dom — Construit un objet SimpleXMLElement à partir d'une node DOM
- simplexml_load_file — Convertit un fichier XML en objet
- simplexml_load_string — Convertit une chaîne XML en objet
SimpleXML
QLeap
19-Nov-2008 06:27
19-Nov-2008 06:27
gwhitescarver at yahoo dot com
12-Sep-2008 04:02
12-Sep-2008 04:02
Moving some code from a PHP 5.2.6 / Windows environment to a 5.2.0 / Linux environment, I somehow lost access to a plain text node within a SimpleXML Object. On a var_dump of $xml_node, a [0] element was shown as the string '12'. However, $xml_node[0] was evaluating NULL in 5.2.0. You can see below the code change I made, pulling my data out of the raw XML with a regular expression. Hope this is useful to someone.
//In some versions of PHP it seems we cannot access the [0] element of a SimpleXML Object. Doesn't work in 5.2.0:
//$count = $xml_node[0];
//grab the raw XML:
$count = ($xml_node->asXML());
//pull out the number between the closing and opening brace of the xml:
$count = preg_replace('/.*>(\d*)<.*/', '$1', $count);
charlie at blankcanvasstudios dot com
15-Aug-2008 02:21
15-Aug-2008 02:21
Optimizing aalaap at gmail dot com's php
<?php
function is_rss($feedxml) {
@$feed = simplexml_load_string($feedxml);
return ($feed->channel->item)?true:false;
}
function is_atom($feedxml) {
@$feed = new SimpleXMLElement($feedxml);
($feed->entry):true:false;
}
?>
aalaap at gmail dot com
30-Jun-2008 09:58
30-Jun-2008 09:58
Here are two quick and dirty functions that use SimpleXML to detect if a feed xml is RSS or ATOM:
<?php
function is_rss($feedxml) {
@$feed = new SimpleXMLElement($feedxml);
if ($feed->channel->item) {
return true;
} else {
return false;
}
}
function is_atom($feedxml) {
@$feed = new SimpleXMLElement($feedxml);
if ($feed->entry) {
return true;
} else {
return false;
}
}
?>
The functions take in the full text feed (retrieved via cURL, for example) and return a true or a false based on the result.
