Edit report at https://bugs.php.net/bug.php?id=65365&edit=1
ID: 65365
User updated by: mike at skew dot org
Reported by: mike at skew dot org
-Summary: baseURI should always be a real URI
+Summary: Allow defining baseURI of doc not loaded directly
from URL
Status: Open
Type: Feature/Change Request
Package: DOM XML related
Operating System: FreeBSD 8.4-RELEASE
PHP Version: 5.4.17
Block user comment: N
Private report: N
New Comment:
Fixed summary (request title).
Previous Comments:
------------------------------------------------------------------------
[2013-07-31 05:49:18] mike at skew dot org
Description:
------------
As I noted in Request #65364, when loading an XML document from memory (string,
file, whatever), such as via DOMDocument::loadXml(), PHP tells libxml to use a
particular default value as the base URI, and this value is then exposed
through
the baseURI property in the DOM.
It's quite possible that the XML has been cached or otherwise came from
somewhere that's known, and the app will want to use a particular URL as the
base URI at parse time. It would be nice, then, when the app does get around to
parsing, for it to see the same baseURI properties as if DOMDocument::load()
had
been used with the original URL.
So, regardless of what the default base URI is, PHP should provide a way to
override it at parse time. I suggest allowing loadXml() to take another
argument: a string for the base URI.
This will help with using the baseURI property for what is ostensibly its
purpose: resolving relative URI references in the document, such as href values
in XHTML documents and Atom feeds.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=65365&edit=1