XMLWriter::writeAttributeNS does not correctly deal with null values for the namespaceUri.
- 主要言語
- C++
- スター
- 18.7k
- フォーク
- 3.1k
- 平均マージ
- 1時間 47分
- マージ済み PR(30日)
- 2
説明
### Example 1: attribute is dropped
``` php
openMemory();
$xmlWriter->startDocument();
$xmlWriter->startElementNS('s', 'root', 'http://sabre.io/ns');
$xmlWriter->writeAttributeNS('s', 'foo', null, 'bar');
$xmlWriter->endElement();
echo $xmlWriter->outputMemory(), "\n";
```
Vanilla PHP output:
``` xml
```
HHVM output:
``` xml
```
### Example 2: extra xmlns declaration with empty string
``` php
openMemory();
$xmlWriter->startDocument();
$xmlWriter->startElementNS('s', 'root', 'http://sabre.io/ns');
$xmlWriter->startElementNS('s', 'child', null);
$xmlWriter->writeAttributeNS('s', 'foo', null, 'bar');
$xmlWriter->endElement();
$xmlWriter->endElement();
echo $xmlWriter->outputMemory(), "\n";
```
Vanilla PHP output:
``` xml
```
HHVM output:
``` xml
```
Interesting to note that PHP also had the same issue up until PHP 5.2.2, according to 3v4l.
### Workaround
Instead of calling:
``` php
$xmlWriter->writeAttributeNS('s', 'foo', null, 'bar');
```
It's possible to just call:
``` php
$xmlWriter->writeAttributeNS('s:foo', 'bar');
```
コントリビューションガイド
評価
この issue はまだ評価されていません。