I’ve been working with DOMDocument and all its related classes, but some things are still unclear to me.
For example, $domattr->value returns
http://bla.com/?bla=test&bla2=test
when it should return
http://bla.com/?bla=test&bla2=test
(because this is what the attribute nodes text node literally contains)
So here are my questions:
1) Why is it converting the ampersand: What’s the logic behind it from DOMAttr’s point of view?
2) How can I work with DOMNodes so that I get the real values?
3) What are some best practices when dealing with this kind of stuff? I want to have consistent and predictable code and behavior, but it can be confusing when I don’t get what I expect.
The whole point of writing
&instead of&is because the&character has special meaning in HTML source code. When the browser parses the HTML source code into the DOM tree, it transforms the HTML entities ( ,•, etc.) into their corresponding characters. There is no need to preserve the HTML entities inside the DOM tree – the browsers don’t do that.