SimpleXMLElement 正在删除属性 (php 7.2)
SimpleXMLElement is removing attributes (php 7.2)
有人知道为什么 SimpleXMLElement 会删除我的 XML 中的属性吗??
我有 XML 看起来像这样的数据(注意翻译 "language" 属性):
<events>
<event id="d8f17143-0c67-48aa-a7f1-003a5ddbd28f">
<details>
<names>
<translation language="en">English title</translation>
<translation language="de">German title</translation>
</names>
</details>
</event>
</events>
我 运行 通过 SimpleXmlElement 像这样:
$xmlConvertedData = new \SimpleXMLElement($xml);
我转出数据,看起来是这样的:
object(SimpleXMLElement)#958 (2) {
["@attributes"]=>
array(1) {
["Index"]=>
string(1) "1"
}
["Events"]=>
object(SimpleXMLElement)#956 (1) {
["Event"]=>
array(1) {
[0]=>
object(SimpleXMLElement)#959 (1) {
["Details"]=>
object(SimpleXMLElement)#826 (13) {
["Names"]=>
object(SimpleXMLElement)#834 (1) {
["Translation"]=>
array(2) {
[0]=>
string(32) "English title"
[1]=>
string(33) "German title"
}
}
}
}
}
}
}
...注意 "translation" 不再具有 "language" 属性,只有 ID 号 0 和 1。我需要知道属性值,因为 XML 并不总是先显示相同的语言。
(我将示例代码编辑为一条记录,所以请忽略#958部分)
不要在 SimpleXML 对象上使用任何 print_r()
或 var_dump()
,这将缩短输出,因为可能有很多输出。如果要检查加载的文档,请使用 asXML()
...
echo $xmlConvertedData->asXML();
或输出单元素语言...
echo $xmlConvertedData->event[0]->details->names->translation['language'];
(您还需要更正样本的最后一个元素 - </events>
)
有人知道为什么 SimpleXMLElement 会删除我的 XML 中的属性吗??
我有 XML 看起来像这样的数据(注意翻译 "language" 属性):
<events>
<event id="d8f17143-0c67-48aa-a7f1-003a5ddbd28f">
<details>
<names>
<translation language="en">English title</translation>
<translation language="de">German title</translation>
</names>
</details>
</event>
</events>
我 运行 通过 SimpleXmlElement 像这样:
$xmlConvertedData = new \SimpleXMLElement($xml);
我转出数据,看起来是这样的:
object(SimpleXMLElement)#958 (2) {
["@attributes"]=>
array(1) {
["Index"]=>
string(1) "1"
}
["Events"]=>
object(SimpleXMLElement)#956 (1) {
["Event"]=>
array(1) {
[0]=>
object(SimpleXMLElement)#959 (1) {
["Details"]=>
object(SimpleXMLElement)#826 (13) {
["Names"]=>
object(SimpleXMLElement)#834 (1) {
["Translation"]=>
array(2) {
[0]=>
string(32) "English title"
[1]=>
string(33) "German title"
}
}
}
}
}
}
}
...注意 "translation" 不再具有 "language" 属性,只有 ID 号 0 和 1。我需要知道属性值,因为 XML 并不总是先显示相同的语言。
(我将示例代码编辑为一条记录,所以请忽略#958部分)
不要在 SimpleXML 对象上使用任何 print_r()
或 var_dump()
,这将缩短输出,因为可能有很多输出。如果要检查加载的文档,请使用 asXML()
...
echo $xmlConvertedData->asXML();
或输出单元素语言...
echo $xmlConvertedData->event[0]->details->names->translation['language'];
(您还需要更正样本的最后一个元素 - </events>
)