簡體   English   中英

使用xpath在PHP中查詢XML

[英]Using xpath to query XML in PHP

我第一次使用xpath來查詢xml文檔中的值並返回相應的名稱值。 我一直在閱讀有關該主題的大量不同資源,但似乎無法正確輸出。 這是我的XML

<?xml version="1.0" encoding="utf-8"?>
<books>
  <book>
    <name>Genesis</name>
    <abrv>GEN</abrv>
    <title>The First Book of Moses</title>
  </book>
  <book>
    <name>Exodus</name>
    <abrv>EXO</abrv>
    <title>The Second Book of Moses</title>
  </book>
  <book>
    <name>Leviticus</name>
    <abrv>LEV</abrv>
    <title>The Third Book of Moses</title>
  </book>
</books>

這是我的PHP / HTML

<?php $root = $_SERVER['DOCUMENT_ROOT'] . "/";
$bookID = 'GEN';
$xml = simplexml_load_file( $root . 'assets/xml/books.xml' ) or die( "No Page Data Found" );
$bookName = $xml->xpath( '//book[abrv="'.$bookID.'"]/name' );
?>
<article id="verseOfDay">
  <div class="container">
    <h2>verse of the day</h2>
    <h6><?php echo $bookName; ?></h6> // Line 19
    <p></p>
  </div>
</article>

最后,這是我收到的通知:

注意:要在/HOME/#####/MYWEBSITE.COM/ASSETS/INCLUDES/VERSEOFTHEDAY.PHP在第19行上進行字符串轉換

我究竟做錯了什么? 在此示例中,我希望它在標簽中輸出Genesis。

SimpleXML xpath函數返回結果數組,如果未找到結果,則該數組為空。 因此,您需要檢查一下,如果得到結果,它將位於$bookName[0] 這樣的事情會起作用:

$bookNames = $xml->xpath( '//book[abrv="'.$bookID.'"]/name' );
$bookName = empty($bookNames) ? 'Not Found' : $bookNames[0];
?>
<article id="verseOfDay">
  <div class="container">
    <h2>verse of the day</h2>
    <h6><?php echo $bookName; ?></h6>
    <p></p>
  </div>
</article>

3v4l.org上的演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM