summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTechnosophos <[email protected]>2013-04-24 17:33:08 -0500
committerTechnosophos <[email protected]>2013-04-24 17:33:08 -0500
commitfe3d7b815756b6f9ec3bad7c9bfe400b6ea11222 (patch)
treee3c1d3c638d3107a8002340f5f66abdc84a4eb40 /src
parent102c57cc46df3b2dfcb435e9e51b8f733f11b741 (diff)
Added attribute handling.
Diffstat (limited to 'src')
-rw-r--r--src/HTML5/Parser/DOMTreeBuilder.php13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/HTML5/Parser/DOMTreeBuilder.php b/src/HTML5/Parser/DOMTreeBuilder.php
index 2807790..29e83c6 100644
--- a/src/HTML5/Parser/DOMTreeBuilder.php
+++ b/src/HTML5/Parser/DOMTreeBuilder.php
@@ -1,6 +1,7 @@
<?php
namespace HTML5\Parser;
+use HTML5\Elements;
/**
* Create an HTML5 DOM tree from events.
*
@@ -69,11 +70,23 @@ class DOMTreeBuilder implements EventHandler {
}
$ele = $this->doc->createElement($lname);
+ foreach ($attributes as $aName => $aVal) {
+ $ele->setAttribute($aName, $aVal);
+
+ // This is necessary on a non-DTD schema, like HTML5.
+ if ($aName == 'id') {
+ $ele->setIdAttribute('id', TRUE);
+ }
+ }
$this->current->appendChild($ele);
// XXX: Need to handle self-closing tags and unary tags.
$this->current = $ele;
+
+ // Return the element mask, which the tokenizer can then use to set
+ // various processing rules.
+ return Elements::element($name);
}
public function endTag($name) {