Laravel/PHP读取XML文件:获取元素属性与文本值方法
如何用SimpleXMLElement获取XML元素的文本内容
要获取<car>元素的文本值(如porsche、ferrari),有两种直接可行的方法:
方法1:强制类型转换为字符串
SimpleXMLElement类内置了__toString()魔术方法,直接将对象转为字符串就能自动返回元素的文本内容:
$xmlString = file_get_contents($filename); $xml = new \SimpleXMLElement($xmlString); foreach ($xml->children() as $child) { $carName = (string)$child; echo $carName; // 依次输出 porsche、ferrari }
方法2:访问索引0
从你给出的输出可以看到,文本内容被存储在对象的0索引属性中,直接访问这个索引即可获取:
$xmlString = file_get_contents($filename); $xml = new \SimpleXMLElement($xmlString); foreach ($xml->children() as $child) { $carName = $child[0]; echo $carName; // 依次输出 porsche、ferrari }
完整示例(同时获取属性与文本)
如果需要同时读取元素属性和文本内容,完整代码如下:
$xmlString = file_get_contents($filename); $xml = new \SimpleXMLElement($xmlString); foreach ($xml->children() as $child) { $id = (string)$child['id']; $colour = (string)$child['colour']; $carName = (string)$child; echo "ID: {$id}, 颜色: {$colour}, 车型: {$carName}\n"; }
执行后输出:
ID: 0001, 颜色: blue, 车型: porsche ID: 0002, 颜色: red, 车型: ferrari
内容的提问来源于stack exchange,提问作者radgezito
相关产品推荐
相关产品推荐

