php DOMDocument and entities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



This is not CentOS specific but I hope someone here knows so I do not have to subscribe to another list.

I'm using php DOMDocument to create an XSL that needs a non-breaking space between two values.

Basically:

$xslvalueof = $dom->createElement('xsl:value-of');
    $xslvalueof->setAttribute('select', '../@month');
    $caption->appendChild($xslvalueof);
$nbsp = $dom->createTextNode(' ');
    $caption->appendChild($nbsp);
$xslvalueof = $dom->createElement('xsl:value-of');
    $xslvalueof->setAttribute('select', '../@year');
    $caption->appendChild($xslvalueof);

That's what I am trying to do.

createTextNode() however tries to protect the users, and automatically turns any & into &

So I tried

$nbsp = $dom->createEntityReference('#160');

That however gives a dom error, it seems createEntityReference only works with named entities.

$nbsp = $dom->createEntityReference('nbsp');

works, but then I would have to modify the DTD for both XSL and the target XML because neither have nbsp defined.

How can I create the literal string ' ' using DOMDocument as a text node between two other nodes?

This is driving me nuts.

I could I suppose put it inside a span

&nbsp = $dom->createElement('span', ' ');

That works but is hackish. It seems to work though by generating the actual UTF8 character itself.

I really wish the XML spec itself had named entities for the various whitespace characters that tend to get eaten by XML parsers if not done as a numbered entity. Ah well.

Using   works just fine when the XSL is a text file. It is dynamically creating it via DOMDocument where I have a problem.

Thanks for any suggestions.

--
-=-
Sent my from my laptop, may not be able to respond timely
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos



[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux