2016-12-14 85 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> 

我打開它,並尋求「案卷」的價值觀,但第一組的案檔,這樣做後,$ XML->未來(「案卷」)去該文件的結尾,第二組病例文件被跳過。如何獲取所有案例文件?

+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(); 
    } 
}