0

必要なコンテンツを含むこの間違った形式の XML ファイルがあります。しかし、PHPでSimpleXMLElementオブジェクトを取得できないようです。この XML ファイルの構文は、この のようなものであると想定されており、本来あるべき形式になっています。

などのエラーが発生し続けNotice: Trying to get property of non-objectます。

私が興味を持っている XML は、最初の項目のタイトルとリンクです。

前もって感謝します!

編集: html_entity_decode を試してみましたが、それ自体で問題を解決することはできませんでした。しかし、最終的な解決策にはこの機能が必要になると私は信じています。

4

1 に答える 1

1

コードを見なくても、何が問題なのかを知る方法があります。とにかく、指摘した XML は有効です。これは、最初の項目ノードのタイトルを取得し、指定した URL から XMLにリンクする実際の例です。

ここで貼り付けサイズを縮小するために、XML を少しフォーマットし、2 つの項目ノードのみを保持しました。http://codepad.viper-7.com/3UPARIで完全な動作例を参照してください。

<?php
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Latest CraftBukkit artifacts for Recommended Build</title>
        <link>http://dl.bukkit.org/downloads/craftbukkit/list/rb/</link>
        <description>The latest "CraftBukkit" artifacts for Recommended Build</description>
        <atom:link href="http://dl.bukkit.org/downloads/craftbukkit/feeds/latest-rb.rss" rel="self" />
        <language>en-us</language>
        <lastBuildDate>Thu, 31 Jan 2013 04:37:54 +0000</lastBuildDate>
        <item>
            <title>Recommended Build for CraftBukkit: 1.4.7-R1.0 (build 2624)</title>
            <link>http://dl.bukkit.org/downloads/craftbukkit/view/01845_1.4.7-R1.0/</link>
            <description>&lt;p&gt;This new version is 12.0 MB big.&lt;/p&gt;</description>
            <pubDate>Thu, 31 Jan 2013 04:37:54 +0000</pubDate>
            <guid>http://dl.bukkit.org/downloads/craftbukkit/view/01845_1.4.7-R1.0/</guid>
        </item>
        <item>
            <title>Recommended Build for CraftBukkit: 1.4.5-R1.0 (build 2543)</title>
            <link>http://dl.bukkit.org/downloads/craftbukkit/view/01707_1.4.5-R1.0/</link>
            <description>&lt;p&gt;This new version is 11.9 MB big.&lt;/p&gt;</description>
            <pubDate>Wed, 19 Dec 2012 11:14:13 +0000</pubDate>
            <guid>http://dl.bukkit.org/downloads/craftbukkit/view/01707_1.4.5-R1.0/</guid>
        </item>
    </channel>
</rss>
XML;

 $sxe = new SimpleXMLElement($xml);
 echo "Title: {$sxe->channel->item[0]->title}\n";
 echo "Link: {$sxe->channel->item[0]->link}\n";

出力

Title: Recommended Build for CraftBukkit: 1.4.7-R1.0 (build 2624)
Link: http://dl.bukkit.org/downloads/craftbukkit/view/01845_1.4.7-R1.0/
于 2013-05-30T13:46:56.063 に答える