Hi again
        
        I don't know what the DB should do for you.
        
        If you simple want to select subtrees from your big XML, you can put
        the XML Files to the filesystem and use XPointer for query.
        
        Here an example:

<?php
$xml=<<<END
<result xmlns:xi="http://www.w3.org/2001/XInclude"; 
xmlns:xhtml="http://www.w3.org/1999/xhtml";>
<xi:include 
href="http://www.laptop.org/vision/index.shtml#xmlns(xhtml=http://www.w3.org/1999/xhtml)xpointer(//xhtml:div[1]//xhtml:div[1])"
 parse="xml">
   <xi:fallback>
   <error>not found</error>
   </xi:fallback>
  </xi:include>
</result>
END;

$dom=domDocument::loadXML($xml);
$dom->xinclude();

header("Content-type:text/xml");
echo $dom->saveXML();
?>

This example loads an XML (xhtml) from the web (filesystem is also
possible) and outputs a subtree of the document.
The subtree is selected by an XPointer expression.

The XML: http://www.laptop.org/vision/index.shtml
The XPointer:
"#xmlns(xhtml=http://www.w3.org/1999/xhtml)xpointer(//xhtml:div[1]//xhtml:div[1])"
(the namespace part is a little tricki)

To parse 100MByte takes some time.
A database can improve speed, the query syntax (XPointer) maybe is the
same.
Without knowing what the output of the database should be und the query
parameters, it is not easy to tell what db is the best for you.

A solution could be to split the 100MByte file in small parts and store
the subtrees to blobs in mySql. You can build an index based on XPath
and it could be a real fast solution.



Bernhard

        

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to