mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-19 02:56:15 +00:00
Add formatoutput option to Xml::fromArray
This commit is contained in:
parent
026df62a1f
commit
fc34d9fe7f
2 changed files with 87 additions and 1 deletions
|
@ -402,6 +402,87 @@ XML;
|
|||
$this->assertXmlStringEqualsXmlString($expected, $obj->asXML());
|
||||
}
|
||||
|
||||
/**
|
||||
* testFromArrayFormatOutput method
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFromArrayFormatOutput() {
|
||||
$xml = array(
|
||||
'tags' => array(
|
||||
'tag' => array(
|
||||
array(
|
||||
'id' => '1',
|
||||
'name' => 'defect'
|
||||
),
|
||||
array(
|
||||
'id' => '2',
|
||||
'name' => 'enhancement'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$expected = <<<XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tags><tag><id>1</id><name>defect</name></tag><tag><id>2</id><name>enhancement</name></tag></tags>
|
||||
|
||||
XML;
|
||||
$xmlResponse = Xml::fromArray($xml, array('formatOutput' => false));
|
||||
$this->assertEquals($expected, $xmlResponse->asXML());
|
||||
|
||||
$expected = <<<XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tags>
|
||||
<tag>
|
||||
<id>1</id>
|
||||
<name>defect</name>
|
||||
</tag>
|
||||
<tag>
|
||||
<id>2</id>
|
||||
<name>enhancement</name>
|
||||
</tag>
|
||||
</tags>
|
||||
|
||||
XML;
|
||||
$xmlResponse = Xml::fromArray($xml, array('formatOutput' => true));
|
||||
$this->assertEquals($expected, $xmlResponse->asXML());
|
||||
|
||||
$xml = array(
|
||||
'tags' => array(
|
||||
'tag' => array(
|
||||
array(
|
||||
'id' => '1',
|
||||
'name' => 'defect'
|
||||
),
|
||||
array(
|
||||
'id' => '2',
|
||||
'name' => 'enhancement'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
$expected = <<<XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tags><tag id="1" name="defect"/><tag id="2" name="enhancement"/></tags>
|
||||
|
||||
XML;
|
||||
$xmlResponse = Xml::fromArray($xml, array('formatOutput' => false, 'format' => 'attributes'));
|
||||
$this->assertEquals($expected, $xmlResponse->asXML());
|
||||
|
||||
$expected = <<<XML
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<tags>
|
||||
<tag id="1" name="defect"/>
|
||||
<tag id="2" name="enhancement"/>
|
||||
</tags>
|
||||
|
||||
XML;
|
||||
$xmlResponse = Xml::fromArray($xml, array('formatOutput' => true, 'format' => 'attributes'));
|
||||
$this->assertEquals($expected, $xmlResponse->asXML());
|
||||
}
|
||||
|
||||
/**
|
||||
* data provider for fromArray() failures
|
||||
*
|
||||
|
|
|
@ -150,6 +150,7 @@ class Xml {
|
|||
* ### Options
|
||||
*
|
||||
* - `format` If create childs ('tags') or attributes ('attribute').
|
||||
* - `formatOutput` Returns formatted Xml
|
||||
* - `version` Version of XML document. Default is 1.0.
|
||||
* - `encoding` Encoding of XML document. If null remove from XML header. Default is the some of application.
|
||||
* - `return` If return object of SimpleXMLElement ('simplexml') or DOMDocument ('domdocument'). Default is SimpleXMLElement.
|
||||
|
@ -197,11 +198,15 @@ class Xml {
|
|||
'format' => 'tags',
|
||||
'version' => '1.0',
|
||||
'encoding' => Configure::read('App.encoding'),
|
||||
'return' => 'simplexml'
|
||||
'return' => 'simplexml',
|
||||
'formatOutput' => false
|
||||
);
|
||||
$options = array_merge($defaults, $options);
|
||||
|
||||
$dom = new DOMDocument($options['version'], $options['encoding']);
|
||||
if ($options['formatOutput'] === true) {
|
||||
$dom->formatOutput = true;
|
||||
}
|
||||
self::_fromArray($dom, $dom, $input, $options['format']);
|
||||
|
||||
$options['return'] = strtolower($options['return']);
|
||||
|
|
Loading…
Add table
Reference in a new issue