2016-12-01 184 views
0

您好我正在嘗試加載名爲articles.xml的XML文件中的內容: 它具有和作爲元素。加載XML文件和加載內容

<?xml version="1.0"?> 
<RecentArticles> 
    <Article author="The Reddest"> 
    <Title>Silverlight and the Netflix API</Title> 
    <Date>1/13/2009</Date> 
    <Description>Description</Description> 
    <Link></Link> 
    </Article> 
    <Article author="The Hairiest"> 
    <Title>Cake PHP 4 - Saving and Validating Data</Title> 
    <Date>1/12/2009</Date> 
    <Description>Description</Description> 
    <Link></Link> 
    </Article> 
    <Article author="The Tallest"> 
    <Title>Silverlight 2 - Using initParams</Title> 
    <Date>1/6/2009</Date> 
    <Description>Description</Description> 
    <Link></Link> 
    </Article> 
    <Article author="The Fattest"> 
    <Title>Controlling iTunes with AutoHotkey</Title> 
    <Date>12/12/2008</Date> 
    <Description>Description</Description> 
    <Link></Link> 
    </Article> 
</RecentArticles> 

這是我使用打印的元素融入到表下面的PHP代碼:

    <!--Make table and print each xml element into it--> 
       <center> 
        <table border="1"> 
         <tr> 
          <th>Title</th> 
          <th>Date</th> 
          <th>Description</th> 
          <th>Link</th> 

         </tr> 

         <?php 

          //Load the xml file int a variable for use in the table below. 
          $xml = simplexml_load_file("articles.xml"); 

          echo("<tr>"); 

          foreach ($xml->RecentArticles->Article as $entry) 
          { 

           $title = $entry['Title'] 
           $date = $entry['Date']; 
           $description = $entry['Description']; 
           $link = $entry['Link']; 

           echo("<td>$title</td>"); 
           echo("<td>$date</td>"); 
           echo("<td>$description</td>"); 
           echo("<td>$link</td>"); 

          } 

          echo("</tr>"); 

         ?> 

        </table> 
       </center> 

但是沒有被打印成表..沒有任何人有任何想法,爲什麼?

+0

你有'var_dump'ed'$ xml-> RecentArticles-> Article'嗎?它是否爲'NULL'? –

+0

@u_mulder它不應該,PHP正在訪問一個屬性而不是節點值。 – doublesharp

+0

已排序現在感謝。 –

回答

0

您正在訪問(不存在的)屬性值,而不是您的內容的節點值。

訪問 「標題」 屬性的 「條」 的節點上的值:

$title = $entry['Title'] 

訪問 「標題」 節點值:

$title = $entry->Title 

例XML:

<RecentArticles> 
    <Article author="The Reddest" Title="This is what you are accessing with $entry['Title']"> 
    <Title>This is what you should be accessing with $entry->Title</Title> 
    <Date>1/13/2009</Date> 
    <Description>Description</Description> 
    <Link></Link> 
    </Article> 
</RecentArticles> 

有關如何訪問XML元素的更多信息,請參閱this documentation

+0

謝謝你已經使我傻了。 –

+0

太棒了 - 你會介意將此標記爲答案嗎?謝謝! – doublesharp