コード例 #1
0
ファイル: Formatter.php プロジェクト: talesoft/tale-dom
 public function formatText($text, $level = null)
 {
     $indent = $this->getIndentation($level ?: 0);
     $newLine = $this->getNewLine();
     $text = Parser::normalize($text);
     if ($this->isPretty() && !$this->isShortText($text)) {
         $text = wordwrap($text, $this->options['line_limit'], "{$newLine}{$indent}");
     }
     return $indent . $text;
 }
コード例 #2
0
ファイル: Parser.php プロジェクト: talesoft/tale-dom
 /**
  * @param string $string
  *
  * @return Element
  * @throws Exception
  */
 public function parse($string)
 {
     $this->internalParser = xml_parser_create($this->encoding);
     xml_set_object($this->internalParser, $this);
     xml_parser_set_option($this->internalParser, \XML_OPTION_CASE_FOLDING, false);
     xml_parser_set_option($this->internalParser, \XML_OPTION_SKIP_WHITE, true);
     xml_set_element_handler($this->internalParser, 'handleOpenTag', 'handleCloseTag');
     xml_set_character_data_handler($this->internalParser, 'handleText');
     $string = Parser::normalize($string);
     $this->currentElement = null;
     if (!xml_parse($this->internalParser, Parser::normalize($string))) {
         $this->throwException();
     }
     if (is_resource($this->internalParser)) {
         xml_parser_free($this->internalParser);
     }
     return $this->currentElement;
 }