Re: [PHP-XML-DEV] Further SimpleXML suggestions
[email protected] (Rob Richards) Mon, 30 Jul 2007 09:57:28 -0400
| Newsgroups | php.xml.dev |
|---|---|
| Message-ID | <[email protected]> |
Ben Schmidt wrote:
> - It would be nice if $sxe->subelem[]=$value worked. At the moment it
> gives a fatal error (!) when you try to do this; it seems to assume
> you are trying to set an attribute, which is clearly not the
> case--empty brackets imply numeric indices, and an unnamed attribute
> is nonsense, and any XML programmer would know that!
It does. Try recent version of PHP.
>
> LESS IMPORTANT ONES: a subclass could probably easily be made to do
> these via DOM. However, I reckon these would be useful additions to
> SimpleXML proper, as they bring its manipulaion abilities up to par
> with its access/reading abilities, which I think is desirable.
>
> - It would be nice to be able to add an element in a particular
> location among a group of similar elements (as SimpleXML can enumerate
> in order and access via numeric index). An extra parameter to addChild
> to add the child before another passed node would do. Or some kind of
> addSibling method(s).
>
> - Being able to add a 'subtree' rather than just a simple element
> would be good. You could overload the addChild method, or provide
> another.
>
The above are more complex operations and can be done using DOM - this
is why we have the interoperability between the extensions.
> - A setName method should complement the getName method.
XML node names are read only.
>
> - Some way to declare namespace prefixes would be desirable.
> setDocNamespaces to complement getDocNamespaces, perhaps.
Have no idea what you mean by this. getDocNamespaces simply retrieves
all xnamespaces declared within the document.
>
> - This idea is pretty 'out there', but I think worthy of
> consideration. It would be kinda cool if when adding elements,
> SimpleXML also added 'padding' (mostly newlines, but potentially
> indentation or such too, if not too difficult). Since SimpleXML can't
> operate with mixed text/elements, it would be very sensible for it to
> add such text to keep the resulting XML documents
> looking...well...simple, and it would have no effect on how SimpleXML
> would interpret the document!
Whitespace is usually significant so we cant magically add anything to a
document.
As to your last question about node value:
foreach ($sxe->node AS $node) {
$node[0] = "b";
}
changes the value for each node to "b". Works at least in recent PHP
release.
Rob