[英]How to change XML attributes (and values) with SimpleXMLElement in PHP
[英]How do I convert XML tags with attributes and inner text at the same time into a SimpleXMLElement object in PHP?
當我想將XML字符串轉換為SimpleXMLElement對象時,我遇到了問題。
這是我的PHP代碼:
// XML string
$xmlStr = <<<XML
<?xml version='1.0'?>
<document>
<lastname lang="EN">Smith</lastname>
</document>
XML;
// Convert the XML string into an Array
$xml = simplexml_load_string($xmlStr);
$json = json_encode($xml);
$xmlArray = json_decode($json, true);
// Print SimpleXMLElement object
print_r($xml);
echo '<br /><br />';
// Print JSON
print_r($json);
echo '<br /><br />';
// Print XML Array
print_r($xmlArray);
echo '<br /><br />';
我得到了這個結果:
SimpleXMLElement Object ( [lastname] => Smith )
{"lastname":"Smith"}
Array ( [lastname] => Smith )
但是沒有“lang”屬性,我不知道我做錯了什么...... :(
有人可以幫幫我嗎? 任何想法都將非常感謝! 提前致謝。
要設置'lastname'標簽的文本值'Smith',我會:
$xml->lastname->{'_'}
希望能幫助到你!
json_encode
函數不會在任何僅為text的節點上添加xml屬性。 如果最終元素只是文本,並且在這種情況下需要使用另一個屬性作為語法,則必須添加另一個封閉標記。 我總是使用_value ,就像Mootools
XmlToJsObject庫一樣。
我寫了一個小PHP 測試 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.