簡體   English   中英

如何將帶有屬性和內部文本的XML標記同時轉換為PHP中的SimpleXMLElement對象?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM