Figuring out how to access the properties of a SimpleXmlElement object was a little tricky for me. In particular, it took a while to discover that I needed to cast my SimpleXmlElement properties to be of type "string" to print them or do comparisons on them. For instance, assuming you already have a string of xml in $xmlstr...
<?php
$sxml= new SimpleXmlElement($xmlstr);
if ((string) $sxml->property== "somevalue") {
echo (string) $sxml->property;
}
?>
The properties of a SimpleXmlElement object are objects themselves, so you need to put "(string)" before them, which casts their values to a string instead of an object. I assume if you were doing a numeric comparison you'd want to cast to an (int) or something numeric instead.
The SimpleXMLElement class
Introduction
Represents an element in XML document.
Class synopsis
SimpleXMLElement
SimpleXMLElement
{
/* Methods */
void addAttribute
( string $name
, string $value
[, string $namespace
] )
SimpleXMLElement addChild
( string $name
[, string $value
[, string $namespace
]] )
mixed asXML
([ string $filename
] )
SimpleXMLElement attributes
([ string $ns
[, bool $is_prefix
]] )
SimpleXMLElement children
([ string $ns
[, bool $is_prefix
]] )
array getDocNamespaces
([ bool $recursive
] )
string getName
( void
)
array getNamespaces
([ bool $recursive
] )
bool registerXPathNamespace
( string $prefix
, string $ns
)
array xpath
( string $path
)
}Table of Contents
- SimpleXMLElement::addAttribute — Adds an attribute to the SimpleXML element
- SimpleXMLElement::addChild — Adds a child element to the XML node
- SimpleXMLElement::asXML — Return a well-formed XML string based on SimpleXML element
- SimpleXMLElement::attributes — Identifies an element's attributes
- SimpleXMLElement::children — Finds children of given node
- SimpleXMLElement::__construct — Creates a new SimpleXMLElement object
- SimpleXMLElement::getDocNamespaces — Returns namespaces declared in document
- SimpleXMLElement::getName — Gets the name of the XML element
- SimpleXMLElement::getNamespaces — Returns namespaces used in document
- SimpleXMLElement::registerXPathNamespace — Creates a prefix/ns context for the next XPath query
- SimpleXMLElement::xpath — Runs XPath query on XML data
SimpleXMLElement
brett at brettbrewer dot com
28-Oct-2009 12:53
28-Oct-2009 12:53
