Exemple #1
0
    public function testScanXmlWithDTD()
    {
        $xml = <<<XML
<?xml version="1.0"?>
<!DOCTYPE results [
<!ELEMENT results (result+)>
<!ELEMENT result (#PCDATA)>
]>
<results>
    <result>test</result>
</results>
XML;
        $result = XmlParser::getDomDocument($xml);
        $this->assertTrue($result instanceof DOMDocument);
        $this->assertTrue($result->validate());
    }
Exemple #2
0
 /**
  * Strip useless tags
  *
  * @access public
  */
 public function stripGarbage()
 {
     $dom = XmlParser::getDomDocument($this->content);
     if ($dom !== false) {
         $xpath = new DOMXPath($dom);
         foreach ($this->stripTags as $tag) {
             $nodes = $xpath->query('//' . $tag);
             if ($nodes !== false && $nodes->length > 0) {
                 Logging::setMessage(get_called_class() . ' Strip tag: "' . $tag . '"');
                 foreach ($nodes as $node) {
                     $node->parentNode->removeChild($node);
                 }
             }
         }
         foreach ($this->stripAttributes as $attribute) {
             $nodes = $xpath->query('//*[contains(@class, "' . $attribute . '") or contains(@id, "' . $attribute . '")]');
             if ($nodes !== false && $nodes->length > 0) {
                 Logging::setMessage(get_called_class() . ' Strip attribute: "' . $attribute . '"');
                 foreach ($nodes as $node) {
                     $node->parentNode->removeChild($node);
                 }
             }
         }
         $this->content = $dom->saveXML($dom->documentElement);
     }
 }