脚本宝典收集整理的这篇文章主要介绍了使用PHP进行Xpath查询(取两个值),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<inventory> <drink> <lemonade supplier="mother" id="1"> <tITle>SuPEr Lemonade</title> <PRice>$2.50</price> <amount>20</amount> </lemonade> <lemonade supplier="mike" id="4"> <title>Lemonade Plus</title> <price>$3.00</price> <amount>20</amount> </lemonade> <pop supplier="Store" id="2"> <title>Poppys</title> <price>$1.50</price> <amount>10</amount> </pop> </drink> </inventory>
<?PHP $XMldoc = new DOMDocument(); $xMLdoc->load('sample.xml'); $xpathVAR = new Domxpath($xmldoc); $queryResult = $xpathvar->query('//lemonade/price'); foreach($queryResult as $result){ echo $result->textContent; } ?>
现在我需要一个XPATH来获取金额= 20的所有项目的TITLE和supplier.
我该怎么做 ?
谢谢
/*/*/*[amount = 20]/@supplier | /*/*/*[amount = 20]/title
这选择:
>任何元素的任何供应商属性,它是XML文档顶级元素的子元素(与/ inventory / drink / lemonade相同,但我喜欢编写更短的XPath表达式),其子元素值具有字符串值可以施放到20号.
>任何元素的标题子元素是XML文档的顶级元素的子元素(与/ inventory / drink / lemonade相同,其子元素值具有字符串值可以施放到20号.
基于xslt的验证:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="node()|@*"> <xsl:for-each select= "/*/*/*[amount = 20]/@supplier | /*/*/*[amount = 20]/title"> <xsl:value-of select="."/> <xsl:text>&#xA;</xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet>
在提供的XML文档上应用此转换时:
<inventory> <drink> <lemonade supplier="mother" id="1"> <title>Super Lemonade</title> <price>$2.50</price> <amount>20</amount> </lemonade> <lemonade supplier="mike" id="4"> <title>Lemonade Plus</title> <price>$3.00</price> <amount>20</amount> </lemonade> <pop supplier="store" id="2"> <title>Poppys</title> <price>$1.50</price> <amount>10</amount> </pop> </drink> </inventory>
它评估XPath表达式并在单独的行上复制所选模式的值:
mother Super Lemonade mike Lemonade Plus
请注意:
通过使用诸如the XPath Visualizer之类的工具可以极大地帮助您学习XPath – 成千上万的人使用它来学习XPath的有趣方式.
以上是脚本宝典为你收集整理的使用PHP进行Xpath查询(取两个值)全部内容,希望文章能够帮你解决使用PHP进行Xpath查询(取两个值)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。