facebook / facebook/hhvm

XMLWriter::writeAttributeNS does not correctly deal with null values for the namespaceUri.

Open
#4,336 0 comments 0 reactions 1 assignee Claimed by @paulbiss View on GitHub
php5 incompatibility
Dominant language
C++
Stars
18.7k
Forks
3.1k
Avg merge
1h 47m
Merged PRs (30d)
2

Description

### 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');
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.