123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace OSInet\Open_Document\Calc;
- class Reader {
- const NS_TABLE = "urn:oasis:names:tc:opendocument:xmlns:table:1.0";
- const NS_OFFICE = "urn:oasis:names:tc:opendocument:xmlns:office:1.0";
-
- public $xml;
-
- public $xpath;
- function __construct($path) {
- $this->xml = new \DOMDocument();
- $this->xml->preserveWhiteSpace = FALSE;
- $this->xml->load($path);
- $this->xpath = new \DOMXPath($this->xml);
- $this->xpath->registerNameSpace('office', self::NS_OFFICE);
- $this->xpath->registerNameSpace('table', self::NS_TABLE);
- }
-
- function getCalcSheets() {
- $sq = '//table:table';
- $list = $this->xpath->query($sq);
- unset($sq);
- return $list;
- }
-
- function getCalcSheetNames() {
- $dnlSheets = $this->getCalcSheets();
- $ret = array();
- foreach ($dnlSheets as $node) {
- $ret[] = $node->getAttributeNS(self::NS_TABLE, 'name');
- }
- unset($dnlSheets);
- return $ret;
- }
-
- function getRows ($namedRange = NULL) {
- $query = empty($namedRange)
- ? '//table:table-row'
- : '//table:table[@table:name="' . $namedRange . '"]/table:table-row';
- $ret = $this->xpath->query($query);
- unset($query);
- return $ret;
- }
- }
|