diff options
author | Mišo Belica <[email protected]> | 2014-02-21 11:31:44 +0100 |
---|---|---|
committer | Mišo Belica <[email protected]> | 2014-02-21 11:31:44 +0100 |
commit | 8f95f4ad58b96a7116083c847b247348ade279a7 (patch) | |
tree | 64fbdd7be8867085ca01a3b506650f0577fbd03f /src/HTML5/Parser/DOMTreeBuilder.php | |
parent | 95f3cf8d5735498e5de26cd81babecd076e4d6bd (diff) |
Ignore attributes with illegal chars in name (fixes #23)
This is neccesary because method "DOMElement::setAttribute"
throws exception for wrong names so DOM elements
can't contain these attributes.
Diffstat (limited to 'src/HTML5/Parser/DOMTreeBuilder.php')
-rw-r--r-- | src/HTML5/Parser/DOMTreeBuilder.php | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/HTML5/Parser/DOMTreeBuilder.php b/src/HTML5/Parser/DOMTreeBuilder.php index cecebaf..b79c298 100644 --- a/src/HTML5/Parser/DOMTreeBuilder.php +++ b/src/HTML5/Parser/DOMTreeBuilder.php @@ -234,7 +234,13 @@ class DOMTreeBuilder implements EventHandler { $aName = Elements::normalizeMathMlAttribute($aName); } - $ele->setAttribute($aName, $aVal); + try { + $ele->setAttribute($aName, $aVal); + } + catch(\DOMException $e) { + $this->parseError("Illegal attribute name for tag $name. Ignoring: $aName"); + continue; + } // This is necessary on a non-DTD schema, like HTML5. if ($aName == 'id') { |