summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/HTML5/Serializer/OutputRules.php15
-rw-r--r--test/HTML5/Serializer/OutputRulesTest.php10
2 files changed, 15 insertions, 10 deletions
diff --git a/src/HTML5/Serializer/OutputRules.php b/src/HTML5/Serializer/OutputRules.php
index c009698..7a51016 100644
--- a/src/HTML5/Serializer/OutputRules.php
+++ b/src/HTML5/Serializer/OutputRules.php
@@ -73,17 +73,16 @@ class OutputRules implements \Masterminds\HTML5\Serializer\RulesInterface
'nodeName'=>'img', 'nodeName'=>array('img', 'a'),
'attrName'=>'alt', 'attrName'=>array('title', 'alt'),
-
-
- 'prefixes'=>['xh'=>'http://www.w3.org/1999/xhtml'),
- 'xpath' => "@checked[../../xh:input[@type='radio' or @type='checkbox']]",
),
*/
array(
- 'nodeNamespace'=>'http://www.w3.org/1999/xhtml',
- 'attrName'=>array('alt', 'title'),
+ 'nodeNamespace' => 'http://www.w3.org/1999/xhtml',
+ 'attrName' => array('alt', 'title', 'value', 'type', 'href', 'id', 'style'),
+ ),
+ array(
+ 'nodeNamespace' => 'http://www.w3.org/1999/xhtml',
+ 'xpath' => 'starts-with(local-name(), \'data-\')',
),
-
);
const DOCTYPE = '<!DOCTYPE html>';
@@ -328,7 +327,7 @@ class OutputRules implements \Masterminds\HTML5\Serializer\RulesInterface
$xp->registerNamespace($nsPrefix, $ns);
}
}
- if(!$xp->query($rule['xpath'], $attr->ownerElement)->length){
+ if(!$xp->evaluate($rule['xpath'], $attr)){
continue;
}
}
diff --git a/test/HTML5/Serializer/OutputRulesTest.php b/test/HTML5/Serializer/OutputRulesTest.php
index aa2e0c5..72d1cd3 100644
--- a/test/HTML5/Serializer/OutputRulesTest.php
+++ b/test/HTML5/Serializer/OutputRulesTest.php
@@ -460,8 +460,10 @@ class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
array('<input type="radio" readonly>'),
array('<input type="radio" checked disabled>'),
array('<input type="checkbox" checked disabled>'),
+ array('<input type="radio" value="" checked disabled>'),
+ array('<div data-value=""></div>'),
array('<select disabled></select>'),
- array('<div ng-app>foo</div>'),
+ array('<div ng-app></div>'),
array('<script defer></script>'),
);
}
@@ -482,7 +484,11 @@ class OutputRulesTest extends \Masterminds\HTML5\Tests\TestCase
$m->invoke($r, $node);
$content = stream_get_contents($stream, - 1, 0);
- $this->assertContains($content, $html);
+
+ $html = preg_replace('~<[a-z]+(.*)></[a-z]+>~', '\1', $html);
+ $html = preg_replace('~<[a-z]+(.*)/?>~', '\1', $html);
+
+ $this->assertEquals($content, $html);
}