0

これは今、奇妙になっています。私はそれを理解するために3時間以上費やしましたが、結果はありません。単純な XML ファイルをループして、結果をページに表示したいと考えています。

ここに私のXMLコードがあります:

<?xml version="1.0"?>
<CATALOG>
<DATA>
<ENTITY_ID>0111</ENTITY_ID>
<PARENT_ID>0222</PARENT_ID>
<LEVEL>0333</LEVEL>
</DATA>
<DATA>
<ENTITY_ID>0111</ENTITY_ID>
<PARENT_ID>0222</PARENT_ID>
<LEVEL>0333</LEVEL>
</DATA>
</CATALOG>

ここに私のモデルがあります:

<?php

class xmlmodel extends CI_Model{

public function catalog(){

    $doc = new DOMDocument();
    $path = 'application/libraries/xml.xml';
    $doc->load($path);//xml file loading here

    $data = $doc->getElementsByTagName('DATA');

    foreach($data as $links){

        $entity_ids = $links->getElementsByTagName('ENTITY_ID');

        $parent_ids = $links->getElementsByTagName( "PARENT_ID" );

        return $links;
       }}}

?>

これが私のコントローラーです:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

public function index()
{
    $this->load->model('xmlmodel');
    $data['category_catalog_entity'] = $this->xmlmodel->catalog();
    $this->load->view('welcome_message', $data);
}
}

そして、ここに私の見解があります:

<?php

foreach($category_catalog_entity as $result){

echo $result;

}
?>

たぶん、あなたたちは私に別のアイデアを与えることができます. 誰かが私を助けてくれることを願っています。ありがとうございました

4

1 に答える 1

1

いくつかの問題:

  1. あなたのcatalog()関数はオブジェクトを返しています。値を取得するには、次のようなものが必要です $entity_ids = $links->getElementsByTagName('ENTITY_ID')->item(0)->nodeValue

  2. $linksループ内で戻っているため、関数は常に最初の要素を返します。

カタログ機能:

public function catalog(){

    $doc = new DOMDocument();
    $path = 'application/libraries/xml.xml';
    $doc->load($path);//xml file loading here

    $data = $doc->getElementsByTagName('DATA');

    return $data;
}

次に、あなたの見解で:

foreach($category_catalog_entity as $result){

    echo $result->getElementsByTagName('ENTITY_ID')->item(0)->nodeValue . '<br />';
    echo $result->getElementsByTagName('PARENT_ID')->item(0)->nodeValue . '<br />';

}
于 2013-09-20T01:58:41.120 に答える