Skip to content

Commit e35b4a6

Browse files
committed
Add README.md
1 parent 29fc074 commit e35b4a6

File tree

1 file changed

+336
-0
lines changed

1 file changed

+336
-0
lines changed

README.md

Lines changed: 336 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ Convert an array to XML with PHP
55
[![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)
66
[![Build Status](https://img.shields.io/travis/refactorstudio/php-array-to-xml/master.svg?style=flat-square)](https://travis-ci.org/refactorstudio/php-array-to-xml)
77

8+
9+
810
## Usage
911

1012
Basic example:
@@ -21,3 +23,337 @@ Output:
2123
<?xml version="1.0" encoding="UTF-8"?>
2224
<root><title>My Products</title></root>
2325
```
26+
27+
28+
29+
## Output Format (Prettify)
30+
> `->setFormatOutput(bool $value = false)`
31+
32+
> Alias: `->prettify()` is the same as typing: `->setFormatOutput(true)`
33+
34+
```php
35+
$array = [
36+
'title' => 'My Products',
37+
'pricing' => 'Pricing'
38+
];
39+
```
40+
41+
Default:
42+
```xml
43+
<?xml version="1.0" encoding="UTF-8"?>
44+
<root><title>My Products</title><pricing>Pricing</pricing></root>
45+
```
46+
47+
Usage:
48+
```php
49+
$result = $converter->setFormatOutput(true)->toXmlString($array);
50+
51+
// or use the alias:
52+
$result = $converter->prettify()->toXmlString($array);
53+
```
54+
55+
Result:
56+
```xml
57+
<?xml version="1.0" encoding="UTF-8"?>
58+
<root>
59+
<title>My Products</title>
60+
<pricing>Pricing</pricing>
61+
</root>
62+
```
63+
64+
65+
66+
## Custom root name
67+
> `->setCustomRootName(string $value = 'root')`
68+
69+
```php
70+
$result = $converter->setCustomRootName('data')->toXmlString();
71+
```
72+
73+
Result:
74+
```xml
75+
<?xml version="1.0" encoding="UTF-8"?>
76+
<data>
77+
...
78+
</data>
79+
```
80+
81+
82+
83+
## Custom tag name
84+
> Custom tag names are used when an array has no key names
85+
>
86+
> `->setCustomTagName(string $value = 'node')`
87+
88+
```php
89+
$array = [
90+
'title' => 'My Products',
91+
'products' => [
92+
[
93+
'name' => 'Raspberry Pi 3',
94+
'price' => 39.99
95+
],
96+
[
97+
'name' => 'Arduino Uno Rev3',
98+
'price' => 19.99
99+
]
100+
]
101+
];
102+
```
103+
104+
Default (prettified):
105+
```xml
106+
<?xml version="1.0" encoding="UTF-8"?>
107+
<root>
108+
<title>My Products</title>
109+
<products>
110+
<node>
111+
<name>Raspberry Pi 3</name>
112+
<price>39.99</price>
113+
</node>
114+
<node>
115+
<name>Arduino Uno Rev3</name>
116+
<price>19.99</price>
117+
</node>
118+
</products>
119+
</root>
120+
```
121+
122+
Usage:
123+
```php
124+
$xml_string = $converter->setCustomTagName('item')->toXmlString($array);
125+
```
126+
127+
Result (prettified):
128+
```xml
129+
<?xml version="1.0" encoding="UTF-8"?>
130+
<root>
131+
<title>My Products</title>
132+
<products>
133+
<item>
134+
<name>Raspberry Pi 3</name>
135+
<price>39.99</price>
136+
</item>
137+
<item>
138+
<name>Arduino Uno Rev3</name>
139+
<price>19.99</price>
140+
</item>
141+
</products>
142+
</root>
143+
```
144+
145+
146+
147+
## XML version
148+
> `->setVersion(string $value = '1.0')`
149+
150+
```php
151+
$xml_string = $converter->setVersion('1.1')->toXmlString(['test']);
152+
```
153+
154+
Result (prettified):
155+
```xml
156+
<?xml version="1.1" encoding="UTF-8"?>
157+
<root>
158+
<node>test</node>
159+
</root>
160+
```
161+
162+
163+
164+
## XML encoding
165+
> `->setEncoding(string $value = 'UTF-8')`
166+
167+
```php
168+
$xml_string = $converter->setEncoding('ISO-8859-1')->toXmlString(['test']);
169+
```
170+
171+
Result (prettified):
172+
```xml
173+
<?xml version="1.0" encoding="ISO-8859-1"?>
174+
<root>
175+
<node>test</node>
176+
</root>
177+
```
178+
179+
180+
181+
## Tag separator
182+
> Set the value for the separator that will be used to replace special characters in tag names
183+
>
184+
> `->setSeparator(string $value = '_')`
185+
186+
```php
187+
$array = [
188+
'some of these keys have' => 'My Value 1',
189+
'spaces in them' => 'My Value 2',
190+
];
191+
```
192+
193+
Default (prettified):
194+
```xml
195+
<?xml version="1.0" encoding="UTF-8"?>
196+
<root>
197+
<some_of_these_keys_have>My Value 1</some_of_these_keys_have>
198+
<spaces_in_them>My Value 2</spaces_in_them>
199+
</root>
200+
```
201+
202+
Usage:
203+
```php
204+
$xml_string = $converter->setSeparator('-')->toXmlString($array);
205+
```
206+
207+
Result (prettified):
208+
```xml
209+
<?xml version="1.0" encoding="UTF-8"?>
210+
<root>
211+
<some-of-these-keys-have>My Value 1</some-of-these-keys-have>
212+
<spaces-in-them>My Value 2</spaces-in-them>
213+
</root>
214+
```
215+
216+
217+
218+
## Transform tag names
219+
> Transform tag names to uppercase/lowercase
220+
>
221+
> `->setTransformTags(string $value = null)`
222+
223+
```php
224+
$array = [
225+
'This' => [
226+
'Is' => [
227+
'an',
228+
'Example'
229+
]
230+
]
231+
];
232+
```
233+
234+
Default (prettified):
235+
```xml
236+
<?xml version="1.0" encoding="UTF-8"?>
237+
<root>
238+
<This>
239+
<Is>
240+
<node>an</node>
241+
<node>Example</node>
242+
</Is>
243+
</This>
244+
</root>
245+
```
246+
247+
Usage (lowercase):
248+
```php
249+
$xml_string = $converter->setTransformTags('lowercase')->toXmlString($array);
250+
```
251+
252+
Result (prettified):
253+
```xml
254+
<?xml version="1.0" encoding="UTF-8"?>
255+
<root>
256+
<this>
257+
<is>
258+
<node>an</node>
259+
<node>Example</node>
260+
</is>
261+
</this>
262+
</root>
263+
```
264+
265+
Usage (uppercase):
266+
```php
267+
$xml_string = $converter->setTransformTags('uppercase')->toXmlString($array);
268+
```
269+
270+
Result (prettified):
271+
```xml
272+
<?xml version="1.0" encoding="UTF-8"?>
273+
<ROOT>
274+
<THIS>
275+
<IS>
276+
<NODE>an</NODE>
277+
<NODE>Example</NODE>
278+
</IS>
279+
</THIS>
280+
</ROOT>
281+
```
282+
283+
284+
Usage (uppercase, but with custom tag names, which will not be transformed):
285+
```php
286+
$xml_string = $converter
287+
->setTransformTags('uppercase')
288+
->setCustomRootName('MyRoot')
289+
->setCustomTagName('MyCustomTag')
290+
->toXmlString($array);
291+
```
292+
293+
Result (prettified):
294+
```xml
295+
<?xml version="1.0" encoding="UTF-8"?>
296+
<MyRoot>
297+
<THIS>
298+
<IS>
299+
<MyCustomTag>an</MyCustomTag>
300+
<MyCustomTag>Example</MyCustomTag>
301+
</IS>
302+
</THIS>
303+
</MyRoot>
304+
```
305+
306+
307+
308+
## Set numeric tag suffix
309+
> If this is not null, it appends the numeric array key to the tag name, with the value as separator.
310+
>
311+
> `->setNumericTagSuffix(string $value = null)`
312+
313+
```php
314+
$array = [
315+
'this',
316+
'is',
317+
'an'
318+
[
319+
'example',
320+
'using',
321+
'numeric tag suffix',
322+
],
323+
];
324+
```
325+
326+
Default (prettified):
327+
```xml
328+
<?xml version="1.0" encoding="UTF-8"?>
329+
<root>
330+
<node>this</node>
331+
<node>is</node>
332+
<node>an</node>
333+
<node>
334+
<node>example</node>
335+
<node>using</node>
336+
<node>numeric tag suffix</node>
337+
</node>
338+
</root>
339+
```
340+
341+
Usage:
342+
```php
343+
$xml_string = $converter->setNumericTagSuffix('_')->toXmlString($array);
344+
```
345+
346+
Result (prettified):
347+
```xml
348+
<?xml version="1.0" encoding="UTF-8"?>
349+
<root>
350+
<node_0>this</node_0>
351+
<node_1>is</node_1>
352+
<node_2>an</node_2>
353+
<node_3>
354+
<node_0>example</node_0>
355+
<node_1>using</node_1>
356+
<node_2>numeric tag suffix</node_2>
357+
</node_3>
358+
</root>
359+
```

0 commit comments

Comments
 (0)