Fix XMLReader::readOuterXML() (github pull 2058)
This fixes a bug encounted by one of the Joomla! testcases.
Example code:
<?php
$xml = <<<EOF
<a>
<b>0</b>
<c>1<d>2<e>3</e>4</d>5</c>
</a>
EOF;
$reader = new XMLReader;
$reader->XML($xml);
while($reader->read()) {
var_dump($reader->readOuterXML());
}
Expected Result:
string(44) "<a>
<b>0</b>
<c>1<d>2<e>3</e>4</d>5</c>
</a>"
string(1) "
"
string(8) "<b>0</b>"
string(1) "0"
string(4) "<b/>"
string(1) "
"
string(26) "<c>1<d>2<e>3</e>4</d>5</c>"
string(1) "1"
string(17) "<d>2<e>3</e>4</d>"
string(1) "2"
string(8) "<e>3</e>"
string(1) "3"
string(4) "<e/>"
string(1) "4"
string(4) "<d/>"
string(1) "5"
string(4) "<c/>"
string(1) "
"
string(4) "<a/>"
Actual Result:
string(9) "
0
12345
"
string(1) "
"
string(1) "0"
string(1) "0"
string(0) ""
string(1) "
"
string(5) "12345"
string(1) "1"
string(3) "234"
string(1) "2"
string(1) "3"
string(1) "3"
string(0) ""
string(1) "4"
string(0) ""
string(1) "5"
string(0) ""
string(1) "
"
string(0) ""
Closes #2058
Closes #2056
https://github.com/facebook/hhvm/pull/2058
Reviewed By: @sgolemon
Differential Revision:
D1220894