X7ROOT File Manager
Current Path:
/usr/local/lsws/admin/html.6.2.2/classes
usr
/
local
/
lsws
/
admin
/
html.6.2.2
/
classes
/
??
..
??
CValidation.php
(26.65 KB)
??
ConfData.php
(860 B)
??
ConfigFile.php
(13.87 KB)
??
ConfigFileEx.php
(4.68 KB)
??
CustStatusCode.php
(2.19 KB)
??
DATTR_HELP.php
(773 B)
??
DATTR_HELP_ITEM.php
(2.53 KB)
??
DAttrBase.php
(12.42 KB)
??
DFileSect.php
(582 B)
??
DPage.php
(3.75 KB)
??
DTbl.php
(17.52 KB)
??
DUtil.php
(4.22 KB)
??
DispInfo.php
(4.36 KB)
??
GUIBase.php
(3.25 KB)
??
PathTool.php
(3.02 KB)
??
XmlTreeBuilder.php
(3.27 KB)
??
blowfish.php
(25.68 KB)
??
jCryption.php
(15.92 KB)
??
ws
Editing: XmlTreeBuilder.php
<?php class XmlTreeBuilder { private $parser; private $node_stack; private $cur_node; private $cur_val; //TAG=0, VALUE=1, ELEMENTS=2 public function &ParseFile($filename, &$err) { if (!is_file($filename)) { $err = $filename . ' is not a valid file.'; return null; } $fd = fopen($filename, 'r'); if (!$fd) { $err = 'failed to open file ' . $filename; return null; } $len = filesize($filename); if ($len > 0) { $contents = fread($fd, $len); fclose($fd); $root = $this->parseString($contents, $err); } else { $root = []; fclose($fd); } if ($err != null) { $err .= '<br> Failed to parse file ' . $filename; return null; } return $root; } private function parseString($xmlstring, &$err) { $this->parser = xml_parser_create(); xml_set_object($this->parser, $this); xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false); xml_set_element_handler($this->parser, 'startElement', 'endElement'); xml_set_character_data_handler($this->parser, 'characterData'); // Build a Root node and initialize the node_stack... $this->node_stack = []; $this->cur_node = null; $this->startElement(null, 'root', []); // parse the data and free the parser... $result = xml_parse($this->parser, $xmlstring); if (!$result) { $err = 'XML error: ' . xml_error_string(xml_get_error_code($this->parser)) . ' at line ' . xml_get_current_line_number($this->parser); } xml_parser_free($this->parser); if (!$result) { return null; } // return the root node... return $this->cur_node[2][0]; } private function startElement($parser, $name, $attrs) { if ($this->cur_node != null) { $this->node_stack[] = $this->cur_node; } $this->cur_node = []; $this->cur_node[0] = $name; //'TAG'=0 // foreach ($attrs as $key => $value) // { // $node[$key] = $value; // } //no attributes used in xml $this->cur_val = ''; $this->cur_node[2] = []; //'ELEMENTS'=2 } private function endElement($parser, $name) { $this->cur_node[1] = trim($this->cur_val); //'VALUE'=1 $node = $this->cur_node; // and add it an element of the last node in the stack... $this->cur_node = array_pop($this->node_stack); $this->cur_node[2][] = $node; } private function characterData($parser, $data) { // add this data to the last node in the stack... $this->cur_val .= $data; } private function xmlNodeOutput(&$node, $space) { $output = str_repeat(' ', $space); $attrs = []; foreach (array_keys($node) as $key) { if ($key == 0) { //'TAG' $name = &$node[0]; } elseif ($key == 1) { //'VALUE' $data = &$node[1]; } elseif ($key == 2) { //'ELEMENTS' $elements = &$node[2]; } else { $attrs[$key] = $node[$key]; } } $name = $node[0]; //'TAG' $output .= "<$name"; if (count($attrs) > 0) { foreach ($attrs as $key => $value) { $output .= " $key=\"$value\""; } } $output .= '>'; if (count($elements) == 0) { $output .= "$data</$name>\n"; } else { $output .= "\n"; if ($data) { $output .= str_repeat(' ', $space + 1); $output .= $data . "\n"; } foreach (array_keys($elements) as $key) { $output .= $this->xmlNodeOutput($elements[$key], $space + 1); } $output .= str_repeat(' ', $space); $output .= "</$name>\n"; } return $output; } }
Upload File
Create Folder