HTML-Dokument Parsen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • HTML-Dokument Parsen

    Wie ist es möglich ein HTML-Dokument, mit PHP4, wie eine XML-Datei
    zu Parsen? Ich habe es mit SAX versucht aber musste leider festellen
    das es so nicht funktioniert.

    PHP-Code:
    <?php
    class FormPraser {
        var 
    $strXML = array();
        var 
    $_parser;

        function 
    FormPraser() {
            
    $this->_parser xml_parser_create();
            
            
    xml_set_object($this->_parser, &$this);
            
    xml_set_element_handler(
                
    $this->_parser,
                
    "startHandler",
                
    "endHandler"
            
    );
            
    xml_set_character_data_handler(
                
    $this->_parser,
                
    "cdataHandler"
            
    );
            
    xml_parser_set_option(
                
    $this->_parser,
                
    XML_OPTION_CASE_FOLDING,
                
    0
            
    );
        }
        
        
    /**
         * handle start element
         *
         * @access private
         * @param  resource  xml parser resource
         * @param  string    name of the element
         * @param  array     attributes
         */
        
    function startHandler($xp$name$attribs) {
            
    printf('handle start tag: %s<br />'$name);
        }

        
    /**
         * handle start element
         *
         * @access private
         * @param  resource  xml parser resource
         * @param  string    name of the element
         */
        
    function endHandler($xp$name) {
            
    printf('handle end tag: %s<br />'$name);
        }
        
        
    /**
         * handle character data
         *
         * @access private
         * @param  resource  xml parser resource
         * @param  string    character data
         */
        
    function cdataHandler($xp$cdata) {
            
    printf('CDATA: %s<br />'$cdata);
        }
        
        function 
    setInputString($strXML) {
            if (
    is_string($strXML)) {
                
    $this->strXML preg_split('/(\r\n|\r|\n)/'$strXML);
            }
        }
        
        function 
    parse() {
            for (
    $i 0$j sizeof($this->strXML); $i $j; ++$i) {
                
    $res xml_parse(
                    
    $this->_parser,
                    
    $this->strXML[$i],
                    !
    array_key_exists(($i 1), $this->strXML)
                );
                
                if (
    $res == false) {
                    
    printf(
                        
    "XML error: %s at line %d",
                        
    xml_error_string(xml_get_error_code($this->_parser)),
                        
    xml_get_current_line_number($this->_parser)
                    );
                    break;
                }
            }

            
    xml_parser_free($this->_parser);
        }
    }

    $sax =& new FormPraser();
    $sax->setInputString(join(''file('index.htm')));
    $sax->parse();
    Resultat:
    Code:
    XML error: SYSTEM or PUBLIC, the URI is missing at line 1
    Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
    PHP Sicherheit
    PHPUnit[1-2]
    Professionelle Softwareentwicklung mit PHP 5
    Professionelle PHP 5-Programmierung

  • #2
    Re: HTML-Dokument Parsen

    HTML != XML
    http://www.sachen-fuer-webmaster.de/...e.php?artid=92
    Wetten die ganzen Deklarationen am Anfang fehlen?
    Wenn sollte es eine XHTML sein, aber das passt dir wahrscheinlich wieder nicht, oder? (Sie sollte dann auch valide sein, änder nicht nur den doctype, sonst tret ich dich )

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Re: Re: HTML-Dokument Parsen

      Original geschrieben von ghostgambler
      HTML != XML
      http://www.sachen-fuer-webmaster.de/...e.php?artid=92
      Wetten die ganzen Deklarationen am Anfang fehlen?
      Das ist mir auch schon klar. Doch ein Versuch war es Wert
      Original geschrieben von ghostgambler
      Wenn sollte es eine XHTML sein, aber das passt dir wahrscheinlich wieder nicht, oder? (Sie sollte dann auch valide sein, änder nicht nur den doctype, sonst tret ich dich )
      Kann Dir leider nicht so ganz folgen Hat jemand einen Anhaltspunkt wie eine HTML-Datei wie eine XML-Datei Parsen kann.
      Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
      PHP Sicherheit
      PHPUnit[1-2]
      Professionelle Softwareentwicklung mit PHP 5
      Professionelle PHP 5-Programmierung

      Kommentar


      • #4
        'Kann man so Auto fahren, wie man Bus fährt?'

        Wozu möchtest du das denn?

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          'Kann man so Auto fahren, wie man Bus fährt?'
          Im Primzip ja kann man.

          Original geschrieben von onemorenerd
          Wozu möchtest du das denn?
          Ich will bestimmte TAGs auslesen.
          Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
          PHP Sicherheit
          PHPUnit[1-2]
          Professionelle Softwareentwicklung mit PHP 5
          Professionelle PHP 5-Programmierung

          Kommentar


          • #6
            Versteh ich nich..
            Wenn du HTML Parsen willst, dann nutz doch einen HTML-Parser wie den
            z.B und keinen XML Parser.
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              ... oder einfach preg_match_all()?

              Kommentar


              • #8
                http://pear.php.net/package/XML_HTMLSax3/
                Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist davon überzeugt, dass er genug davon habe – René Descartes
                PHP Sicherheit
                PHPUnit[1-2]
                Professionelle Softwareentwicklung mit PHP 5
                Professionelle PHP 5-Programmierung

                Kommentar

                Lädt...
                X