php - simplexml 无需类型转换即可获取节点值

标签 php casting simplexml

有什么方法可以simplexml 对象中获取节点值吗?

$amount = (int)$item->amount;

我认为这不是很漂亮,我正在寻找一种更清洁的方法,但到目前为止还没有找到任何东西!

//wouldn't this be nice?
$amount = $item->amount->getValue();

提前致谢。

最佳答案

没有。 SimpleXml 只公开了一个非常有限的 API 来处理节点。它的隐式 API 被认为是一个特性。如果您需要对节点进行更多控制,请使用 DOM :

$sxe = simplexml_load_string(
    '<root><item><amount>10</amount></item></root>'
);
$node = dom_import_simplexml($sxe->item->amount);
var_dump($node->nodeValue); // string(2) "10"

dom_import_simplexml函数会将节点从 SimpleXmlElement 转换为 DOMElement,因此您仍然以某种方式在幕后转换。但是,当从 DOMElement 获取内容时,您不再需要显式进行类型转换。

旁注:我个人认为 DOM 优于 SimpleXml,我建议不要使用 SimpleXml 但是 DOM 马上。如果您想熟悉它,请查看 some of my previous answers about using DOM .

关于php - simplexml 无需类型转换即可获取节点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4722653/

相关文章:

php - 通过 XPath 提取 HTML 字段

javascript - 使用 PHP(wordpress)从数据库中删除图像及其在数据库中的记录

php - 在PHP中查看mysql表中某个链接字段的数据

java - 为什么我可以转换对象?可以用其他对象来完成吗?

c# - c#中的整数数学

php - 如何在 PHP 中清理/验证 XML 文件? PC数据错误

php - 使用附加值填充 php 下拉列表

php - 除了每个用户单独的数据库之外还有其他选择吗?

java - Java编译器错误中的动态转换

php - simplexml 错误处理 php