我以前从未在这里问过一个问题,所以请原谅我的问题,如果它的格式不正确或不够具体.我只是一个涉猎者,对PHP和XPath知之甚少.
我有一个像这样的XML文件:
<catalogue>
<item>
<reference>A1</reference>
<title>My title1</title>
</item>
<item>
<reference>A2</reference>
<title>My title2</title>
</item>
</catalogue>
我正在使用SimpleXML拉该文件:
$file = "products.xml";
$xml = simplexml_load_file($file) or die ("Unable to load XML file!");
然后,我使用URL参数中的引用来获取有关使用PHP的“项目”的更多详细信息:
foreach ($xml->item as $item) {
if ($item->reference == $_GET['reference']) {
echo '<p>' . $item->title . '</p>';
}
因此,从类似www.mysite.com/file.php?reference=A1的URL
我会得到这个HTML:
<p>My title1</p>
我意识到我可能没有正确地做到这一点,欢迎对此提出任何建议.
我的问题是,我想查找下一个和上一个“项目”详细信息.如果我从URL知道reference = A1,如何找到下一个“项目”的参考,标题等?如果我只有“ A1”,并且知道这是一个参考节点,那么如何获得这样的HTML:
<p>Next item is My title2</p>
我已经阅读了有关继兄弟姐妹的信息,但是我不知道如何使用它.我只能找到参考节点的以下同级对象,这不是我所需要的.
任何帮助表示赞赏.
解决方法:
您可以使用:
/catalogue/item[reference='A1']/following-sibling::item[1]/title
含义:从商品目录根元素的item元素子级开始,导航到第一个后继同级item元素的title子级.