PHP SimpleXML循环:如何获取XML节点的文本值?
获取XML节点内的文本值(PHP SimpleXML)
你当前用SimpleXML遍历<param>节点时,要获取节点内部的文本内容(比如true、5这类值),只需要将SimpleXMLElement对象强制转换为字符串即可。
修改后的代码示例:
foreach($oferta->param as $p){ // 获取nazwa属性值 $nazwa = (string)$p->attributes()->nazwa; // 获取节点内的文本值 $wartosc = (string)$p; // 输出结果 echo "属性名:$nazwa,值:$wartosc\n"; }
补充说明:
- SimpleXMLElement对象在被强制转为字符串时,会自动返回节点的文本内容。
- 如果文本中包含多余的换行、空格,可以用
trim((string)$p)来清理无效空白字符。
如果后续改用DOMDocument处理XML,也可以通过$p->textContent获取文本值,示例代码如下:
$dom = new DOMDocument(); $dom->loadXML($yourXmlContent); $params = $dom->getElementsByTagName('param'); foreach($params as $p){ $nazwa = $p->getAttribute('nazwa'); $wartosc = $p->textContent; echo "属性名:$nazwa,值:$wartosc\n"; }
内容的提问来源于stack exchange,提问作者Szymon Mudrak
相关产品推荐
相关产品推荐

