Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
XML Serializer - Bug #15602:  attributes don't get escaped sometimes
3
--FILE--
4
<?php
5
require_once 'XML/Serializer.php';
6
 
7
define('XML_ATTR', 'XML_Attributes_Array');
8
 
9
$options = array(
10
    XML_SERIALIZER_OPTION_INDENT           => '  ',
11
    XML_SERIALIZER_OPTION_LINEBREAKS       => "\n",
12
    XML_SERIALIZER_OPTION_ROOT_NAME        => 'FooTag',
13
    XML_SERIALIZER_OPTION_MODE             => XML_SERIALIZER_MODE_SIMPLEXML,
14
    XML_SERIALIZER_OPTION_ATTRIBUTES_KEY   => XML_ATTR,
15
    XML_SERIALIZER_OPTION_XML_ENCODING     => 'UTF-8',
16
    XML_SERIALIZER_OPTION_XML_DECL_ENABLED => true,
17
    XML_SERIALIZER_OPTION_ENTITIES         => XML_SERIALIZER_ENTITIES_XML,
18
);
19
 
20
$v = 'I say: "A", B & C, \'d\'!';
21
$a = array('attr1' => $v);
22
 
23
$xml = array(
24
    XML_ATTR => $a,
25
    'tag1'   => array(XML_ATTR => $a, 'tag2' => $v),
26
    'tag3'   => array(XML_ATTR => $a, $v),
27
 
28
);
29
 
30
$serializer = new XML_Serializer($options);
31
$serializer->serialize($xml);
32
echo $serializer->getSerializedData();
33
?>
34
--EXPECT--
35
<?xml version="1.0" encoding="UTF-8"?>
36
<FooTag attr1="I say: &quot;A&quot;, B &amp; C, &apos;d&apos;!">
37
  <tag1 attr1="I say: &quot;A&quot;, B &amp; C, &apos;d&apos;!">
38
    <tag2>I say: &quot;A&quot;, B &amp; C, &apos;d&apos;!</tag2>
39
  </tag1>
40
  <tag3 attr1="I say: &quot;A&quot;, B &amp; C, &apos;d&apos;!">I say: &quot;A&quot;, B &amp; C, &apos;d&apos;!</tag3>
41
</FooTag>