Προς το περιεχόμενο

Ανάγνωση συγκεκριμένου κειμένου απο HMTL αρχείο.


mister_0101

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω ένα ΗΤΜL αρχείο που περιέχει εγγραφές της μορφής:

 

>
...
<td class="blah blah">blah blah</td>
...
<td class="number1">12</td>
<td class="number2">14</td>
...
<td class="blah blah..">blah blah..</td>
...
<td class="number1">132</td>
<td class="number2">122</td>
...
<td class="blah blah...">blah blah...</td>
...
<td class="number1">112</td>
<td class="number2">111</td>
...

 

Αυτό που θέλω να κάνω είναι να αναγνωρίζω ένα συγκεκριμένο class name που στην περίπτωση μου είναι τα: "number1" και "number2" και να διαβάζω τις τιμές που περιέχονται ανάμεσα στα > .. </ δηλ.

 

> <td class="number2">ΤΙΜΗ</td> 

 

Ακόμα καλύτερα αν μπορούσα να διαβάσω τις τιμές σειραϊκά, δηλ.

διαβαζω την 1η τιμη απο class "number1" και την 1η τιμή απο class "number2" και μετα την 2η τιμη απο class "number1" και την 2η τιμή απο class "number2"

κ.ο.κ..

 

H ανάγνωση των τιμών αυτών είναι ενα κομμάτι απο μια εφαρμογή που γράφω με C σε GNU/Linux και μόνο.

Δυστηχώς δεν ξέρω perl ουτε HTML αλλά λόγω της φύσεως της εφαρμογής πρέπει να είναι σε C/C++.

 

Ουσιαστικά αυτό που θέλω είναι να αποφύγω να γράψω δικές μου ρουτίνες επεξεργασίας string, με την βοήθεια συναρτήσεων των C headers "string.h" και "ctype.h" οπότε ψάχνω για κάποιο έτοιμο tool που κάνει την αυτό που ζητάω ή από οτι έχω καταλάβει χρειάζομαι κάποια HTML parsing library για C/C++ ?

 

Έχω βρει την παρακάτω εφαρμογή και από οτι έχω καταλάβει εγω χρειάζομαι το ακριβως αντίθετο:

http://www.w3.org/Tools/HTML-XML-utils/man1/htmlprune.html

 

Μπορείτε να μου προτείνετε κατι ?

(εκτός του sed utility :) )

Δημοσ.

Αυτό που περιγράφεις γίνεται πολύ εύκολα με την χρήση regular expressions. Σε Perl ή PHP είναι πολύ εύκολο να το υλοποιήσεις. Σε C/C++ δεν ξέρω πως λέγεται η βιβλιοθήκη για RE. Ισως κάποιος C/C++ coder να μπορεί να μας το διευκρινήσει;

Δημοσ.
Αυτό που περιγράφεις γίνεται πολύ εύκολα με την χρήση regular expressions. Σε Perl ή PHP είναι πολύ εύκολο να το υλοποιήσεις. Σε C/C++ δεν ξέρω πως λέγεται η βιβλιοθήκη για RE. Ισως κάποιος C/C++ coder να μπορεί να μας το διευκρινήσει;

 

Iparxoun kai stin C regular expression functions.

Diavasa oti afto pou zitaw ginete kai etsi :) tha tou riksw mia matia.

Δημοσ.

Οκ, επομένως το μόνο που έχεις να κάνεις είναι δεις πως πρέπει να τις χρησιμοποιήσεις. Είμαι σίγουρος ότι οι Regular Expressions της C/C++ θα είναι Perl style. Ισως λοιπον να βοηθάει η παρακάτω rex:

 

"/<td class=\"myclass\">(.*?)<\/td>/i";

 

Έτσι θα έγραφα την έκφραση σε PHP. To i στο τέλος είναι για να γίνει η αναζήτηση case-insensitive ενώ τα (.*?) στην μέση επιστρέφουν οτιδήποτε υπάρχει ανάμεσα στo tag. Η παρακάτω regular expression θα πρέπει να σου επιστρέψει σε κάποιον πίνακα όλα τα αποτελέσματα. Κάθε αποτελέσμα θα περιέχει ΚΑΙ τα tags. Είναι όμως εύκολο με 2-3 string functions να πάρεις μόνο το κείμενο που σε ενδιαφέρει.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...