summaryrefslogtreecommitdiff
path: root/src/HTML5/Parser/DOMTreeBuilder.php
diff options
context:
space:
mode:
authorMišo Belica <[email protected]>2014-02-21 11:31:44 +0100
committerMišo Belica <[email protected]>2014-02-21 11:31:44 +0100
commit8f95f4ad58b96a7116083c847b247348ade279a7 (patch)
tree64fbdd7be8867085ca01a3b506650f0577fbd03f /src/HTML5/Parser/DOMTreeBuilder.php
parent95f3cf8d5735498e5de26cd81babecd076e4d6bd (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.php8
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') {