2016-12-14 3 views
0

大きなXMLファイルを解析しようとしています。それは次のようになります。PHPのXMLReaderがサブツリーをスキップします

<application> 
    <action-keys> 
    <case-file>...</case-file> 
    <case-file>...</case-file> 
    <case-file>...</case-file> 
    </action-keys> 
    <action-keys> 
    <case-file>...</case-file> 
    <case-file>...</case-file> 
    <case-file>...</case-file> 
    </action-keys> 
<application> 

私はそれを開いて、「ケース・ファイル」の値を求めるが、A $ XML->次の(「ケース・ファイル」)を行う場合、ファイルの最初のセットは、になった後ファイルの最後に、2番目のケースファイルセットがスキップされます。すべてのケースファイルを取得するには?

+0

はSimpleXMLを見てみましょう - http://php.net/manual/en/book.simplexml.php – Derek

+0

私は、所定の時間で全体のXMLファイルをロードすることはできません。 – paladin

+0

いくつかのコードを提供できますか? – Iarwa1n

答えて

0

このようなことを試すことができます。ファイルのすべてのノードが読み込まれ、すべてcase-file xml要素のテキストコンテンツが抽出されます。

$caseFiles = array(); 
$xml = new XMLReader(); 
$xml->open('content.xml'); 
while ($xml->read()) { 
    if ($xml->nodeType == XMLReader::ELEMENT && $xml->name==='case-file') { 
     $xml->read(); 
     $caseFiles[] = $xml->readString(); 
    } 
} 
関連する問題