XMLをJSONに変換

json_encodeにおまかせ

$xml  = file_get_contents('https://www.jpcert.or.jp/wr/2014/wr142501.xml');
$d    = simplexml_load_string($xml);
$json = json_encode($d);
var_dump($json);

他に何か操作したい場合

  • SimpleXMLElementを拡張して使う
class SX extends SimpleXMLElement
{
    public function asJson()
    {
        return json_encode($this);
    }

    public function asArray()
    {
        return json_decode($this->asJson(), true);
    }
}

$xml  = file_get_contents('https://www.jpcert.or.jp/wr/2014/wr142501.xml');
$d    = simplexml_load_string($xml, 'SX');
$json = $d->asJson();
var_dump($json);

RSSのサンプル

  • attributeへのアクセスサンプル
class JVN extends SimpleXMLElement
{
    function title()
    {
        return (string)$this->title;
    }

    function link()
    {
        return (string)$this->link;
    }

    function cvss()
    {
        return (string)$this->children("http://jvn.jp/rss/mod_sec/")->cvss->attributes()->severity;
    }
}

$xml = file_get_contents('http://jvndb.jvn.jp/ja/rss/jvndb_new.rdf');
$j = simplexml_load_string($xml, 'JVN');
foreach ($j->item as $item) {
    if ($item->cvss() === 'High') {
        var_dump($item->title());
        var_dump($item->link());
    }
}

  • Prev
  • TEGRA NOTE 7 Next