To prevent asXML from encoding vowels unwantedly, simply use an approriate XML header with encoding in advance.
If you do so, asXML will happily leave your vowels (and the header) entirely untouched.
<?php
$xmlstr =
'<?xml version="1.0" encoding="UTF-8"?>
<keys>
<key lang="en"><Insert></key>
<key lang="de"><Einfügen></key>
</keys>';
$sxe = new SimpleXMLElement($xmlstr);
$output = $sxe->asXML();
?>
$xmlstr and $output are identical now.
The subsequent use of html_entity_decode() (as proposed in the very beginning in another post) has several drawbacks:
1. It is slow
2. It is expensive
3. If there are already encoded arrow brackets or double quotes in your source for instance (as shown in the above example), markup will be broken.SimpleXMLElement::asXML
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SimpleXMLElement::asXML
Референца за `simplexmlelement.asxml.php` со подобрена типографија и навигација.
SimpleXMLElement::asXML
класата mysqli_driver
SimpleXMLElement::asXML — Враќа добро формиран XML стринг базиран на SimpleXML елемент
= NULL
На asXML методот ги форматира податоците на родителот објект во XML верзија 1.0.
Параметри
filename-
Ако string ако е обезбедена вредност, функцијата ги запишува податоците во датотеката наместо да ги враќа.
Вратени вредности
Ако filename не е специфицирано, оваа функција враќа string на успех и false на грешка. Ако параметарот е специфициран, враќа true ако датотеката беше успешно напишана и false otherwise.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
filename сега е null.
|
Примери
Пример #1 Земи XML
<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = new SimpleXMLElement($string);
echo $xml->asXML();
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
<?xml version="1.0"?> <a> <b> <c>text</c> <c>stuff</c> </b> <d> <c>code</c> </d> </a>
asXML работи и на Xpath резултати:
Пример #2 Користење како asXML() на избегнува идни модификации на прашалникот дури и ако давателот го промени префиксот на просторот на имиња. results
<?php
$string = <<<XML
<a>
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = new SimpleXMLElement($string);
/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');
foreach ($result as $node) {
echo $node->asXML();
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
<c>text</c><c>stuff</c>
Белешки од корисници 2 забелешки
Function asXML decodes special chars like ø, æ and others to æ, ø
To get normal output use without quoting:
$xml = html_entity_decode($xml, ENT_NOQUOTES, 'UTF-8');