FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » DOMDocument::saveHTML() Method Not Accepting Single Argument
Show: Today's Messages :: Polls :: Message Navigator
Switch to threaded view of this topic Create a new topic Submit Reply
DOMDocument::saveHTML() Method Not Accepting Single Argument [message #178948] Mon, 27 August 2012 04:25 Go to next message
SMH is currently offline  SMH
Messages: 3
Registered: July 2012
Karma: 0
Junior Member
Using PHP 5.2

The DOMDocument object method saveHTML() explains that I can pass a DOMNode
object as an optional parameter and get the string output of just the node.

http://www.php.net/manual/en/domdocument.savehtml.php

I have verified that the object I am passing to the method is a DOMElement
object, a type of DOMNode.

I keep getting the warning:

Warning: DOMDocument::saveHTML() expects exactly 0 parameters,
1 given in <php script document>



Is this a bug?

Commentary below does not even address the use of the method with the
optional argument.


====

What do I want to do??

I have DOM elements with mostly one child node of type DOMText representing
file names, and I use 'textContent' property to get the string representing
the file name.

However, some filenames contained characters, like '&', and I had to use
method DOMDocument:createEntityReference() to append them as child nodes to
the element.

But when I try to retrieve with 'textContent' property, only child nodes of
type DOMText are returned concatenated, not entity references.

I figured saveHTML([DOMElement]) might fix this.
Re: DOMDocument::saveHTML() Method Not Accepting Single Argument [message #178950 is a reply to message #178948] Mon, 27 August 2012 05:09 Go to previous messageGo to next message
Adam Harvey is currently offline  Adam Harvey
Messages: 25
Registered: September 2010
Karma: 0
Junior Member
On Mon, 27 Aug 2012 04:25:49 +0000, SMH wrote:
> Using PHP 5.2
>
> I keep getting the warning:
>
> Warning: DOMDocument::saveHTML() expects exactly 0 parameters,
> 1 given in <php script document>
>
>
>
> Is this a bug?

The manual page you linked to has a changelog, which indicates that the
parameter was added in PHP 5.3.6.

> However, some filenames contained characters, like '&', and I had to use
> method DOMDocument:createEntityReference() to append them as child nodes
> to the element.

Why? If you're adding the text as text nodes, there's no need to
explicitly create entity references: $doc->createTextNode('foo&bar');
results in a valid text node which will be saved as "foo&amp;bar" when
save() or saveXML() are called.

> But when I try to retrieve with 'textContent' property, only child nodes
> of type DOMText are returned concatenated, not entity references.

Entity references aren't text content, at least as far as libxml and PHP
are concerned.

> I figured saveHTML([DOMElement]) might fix this.

It may, but not until you use a version of PHP that supports it. :)

Adam
Re: DOMDocument::saveHTML() Method Not Accepting Single Argument [message #178951 is a reply to message #178950] Mon, 27 August 2012 06:07 Go to previous message
SMH is currently offline  SMH
Messages: 3
Registered: July 2012
Karma: 0
Junior Member
Adam Harvey <usenet(at)adamharvey(dot)name> wrote on Mon 27 Aug 2012 08:09:11a

> On Mon, 27 Aug 2012 04:25:49 +0000, SMH wrote:
>> Using PHP 5.2
>>
>> I keep getting the warning:
>>
>> Warning: DOMDocument::saveHTML() expects exactly 0 parameters,
>> 1 given in <php script document>
>>
>>
>>
>> Is this a bug?
>
> The manual page you linked to has a changelog, which indicates that the
> parameter was added in PHP 5.3.6.
>
>> However, some filenames contained characters, like '&', and I had to use
>> method DOMDocument:createEntityReference() to append them as child nodes
>> to the element.
>
> Why? If you're adding the text as text nodes, there's no need to
> explicitly create entity references: $doc->createTextNode('foo&bar');
> results in a valid text node which will be saved as "foo&amp;bar" when
> save() or saveXML() are called.
>
>> But when I try to retrieve with 'textContent' property, only child nodes
>> of type DOMText are returned concatenated, not entity references.
>
> Entity references aren't text content, at least as far as libxml and PHP
> are concerned.
>
>> I figured saveHTML([DOMElement]) might fix this.
>
> It may, but not until you use a version of PHP that supports it. :)

Thanks, Adam.

I think I resorted to using it because of some error or other warning I got
with special HTML characters, and it probably applied to THAT situation, but
clearly not to THIS situation; over-thinking, I guess.

Your explanations resulted in warning-free code.

I'll remember to read the changelog too to make sure that the syntax applies
to the current version. I use 5.2 because I think that is the latest
version produced as a ready binary for Win 7 running Apache 2.2, but then
again, I could certainly even be wrong on that as well. :)

> Adam
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Does this indicate a bug in PHP?
Next Topic: How can i know the propery of a javascript object how can i see what object inclue
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sun Nov 24 00:27:49 GMT 2024

Total time taken to generate the page: 0.05102 seconds