PHP:如何直接将xpath转换为node / attribute

时间:2014-11-05 09:29:51

标签: php xml xpath nodes

我想知道在PHP中是否存在转换xpath的直接方式(没有迭代),比如说:

component_volume_concentration/component[1][@formula="CH4"]
component_volume_concentration/component[1][@unit="%"]
component_volume_concentration/component[1][@min="22"]
component_volume_concentration/component[1][@norm="25"]
component_volume_concentration/component[1][@max="30"]

到XML节点和属性结构:

<component_volume_concentration> 
<component formula="CH4" unit="%" min="22" norm="25" max="30" />
<component formula="C2H6" unit="%" min="22" norm="25" max="30" />
<component formula="C3H8" unit="%" min="22" norm="25" max="30" />
<component formula="i-C4H10" unit="%" min="22" norm="25" max="30" />
<component formula="i-C5H12" unit="%" min="22" norm="25" max="30" />
</component_volume_concentration> 

谢谢!

1 个答案:

答案 0 :(得分:1)

不,请使用XQueryXSLT

Xpath是一种用于选择节点的查询语言。它在XSLT中使用,是XQuery的一个子集。

无法将所有Xpath表达式扩展为有效节点。

如何扩展.//component[@formula="CH4"][last()]count(//node[@attr]) > 0等内容。

您可以定义自己的Xpath语法并为其开发解释器。但这需要很多工作,你需要非常了解XML(命名空间,节点类型,空白处理,cdata部分)。