XML Parsing Error: xml processing instruction not at start of external entity

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 14 Αύγ 2014 16:51

Μωρέ παιδιά προσπαθώ αποτυχημένα να δημιουργήσω ένα απλό rss με τον κώδικα αυτου του άρθρου :: www.9lessons.info/2009/03/generate-xml- ... h-php.html :: αλλά δεν τα καταφέρνω :

Κώδικας: Επιλογή όλων

<?php
include&#40;'db.php'&#41;;
$sql = "SELECT * FROM site_data ORDER BY id DESC LIMIT 20";
$query = mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;&#41;;

header&#40;"Content-type&#58; text/xml"&#41;;

echo "<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
<channel>
<title>9lessons | Programming Blog </title>
<link>http&#58;//9lessons.info</link>
<description>Programming Blog </description>
<language>en-us</language>";

while&#40;$row = mysql_fetch_array&#40;$query&#41;&#41;
&#123;
$title=$row&#91;'title'&#93;;
$link=$row&#91;'link'&#93;;
$description=$row&#91;'description'&#93;;

echo "<item>
<title>$title</title>
<link>$link</link>
<description>$description</description>
</item>";
&#125;
echo "</channel></rss>";
?>
Έχω παρόμοιο πίnαkα στη mysql μου όλα καλά απλά μου πετάει το μήνυμα λάθους :
XML Parsing Error: xml processing instruction not at start of external entityΤοποθεσία: http://localhost/rss.php
Αριθμός γραμμής 2, Στήλη 1:<?xml version='1.0' encoding='UTF-8'?>
^
Από την ελάχιστη μου ενασχόληση ως φοιτήτρια στο ΤΕΙ υποθέτω ότι το προβλημα είναι το ?> στο σημείο :
echo "<?xml version='1.0' encoding='UTF-8'?>
Όμως δεν είμαι σίγουρη. Έχω ψάχνει στο ίντερνετ εδώ και κεί και αρχικά νόμιζα ότι ήταν κάποιο πρόβλημα με τα κενά αλλά δοκίμασα να μην αφήσω κενές γραμμές και κενά και πάλι το ίδιο πρόβλημα υπήρχε δεν άλλαξε κάτι.

Μπορείτε να με βοηθήσετε ;

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 14 Αύγ 2014 20:02

Αν έπρεπε να μαντέψω, θα έλεγα ότι έχεις έξτρα output πριν από το <?xml πράγμα που είναι αντίθετο με το xml standard. Μήπως κάποια από τις προηγούμενες εντολές βγάζει κάποιο λάθος;

Κατά τα άλλα, το σωστό content type για rss είναι application/rss+xml

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 14 Αύγ 2014 20:22

Γεια σου geomagas έκανα ότι είπες και το άλλαξα σε

Κώδικας: Επιλογή όλων

header&#40;"Content-Type&#58; application/rss+xml; charset=UTF-8"&#41;;
Τώρα αν γράψω http://localhost/rss.php στον firefox μου το κατεβάζει σαν αρχείο rss.php αυτόματα !!!!? γιατί ?

Στον explorer μου γράφει
Η δήλωση xml δεν είναι έγκυρη.
Γραμμή: 2 Χαρακτήρας: 3

<?xml version='1.0' encoding='UTF-8'?>
Ενώ στον Chrome Google μου εμφανίζει τον πηγαίο κώδικα του xml
<?xml version='1.0' encoding='UTF-8'?-->
<rss version='2.0'>
<channel>
..
...
..
<description></description>
</item></channel></rss>

Το οποίο μάλλον είναι σωστό ? Ετσι δεν θα έπρεπε να το δείχνει και στους άλλους 2 browsers ;

Τι φταίει ;

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 14 Αύγ 2014 21:17

Ένα-ένα.

Το πρώτο πρόβλημα το έλυσες; Διότι, αυτό με τον header είναι δευτερεύον.

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 14 Αύγ 2014 21:18

Δοκίμασα και έναν άλλο κώδικα :

Κώδικας: Επιλογή όλων

<?php
    header&#40;"Content-Type&#58; application/rss+xml; charset=UTF-8"&#41;;

 DEFINE &#40;'DB_USER', 'my_username'&#41;;  
    DEFINE &#40;'DB_PASSWORD', 'my_password'&#41;;  
    DEFINE &#40;'DB_HOST', 'localhost'&#41;;  
    DEFINE &#40;'DB_NAME', 'my_database'&#41;; 

$rssfeed = '<?xml version="1.0" encoding="UTF-8"?>';
    $rssfeed .= '<rss version="2.0">';
    $rssfeed .= '<channel>';
    $rssfeed .= '<title>Mynewsfeed</title>';
    $rssfeed .= '<link>http&#58;//localhost</link>';
    $rssfeed .= '<description>My feed</description>';
    $rssfeed .= '<language>el</language>';
    $rssfeed .= '<copyright>Copyright 2014</copyright>';
    
    $connection = @mysql_connect&#40;DB_HOST, DB_USER, DB_PASSWORD&#41;
        or die&#40;'Could not connect to database'&#41;;
    mysql_select_db&#40;DB_NAME&#41;
        or die &#40;'Could not select database'&#41;;
 
    mysql_query&#40;"set names 'utf8'"&#41;;
    $query = "SELECT * FROM nea ORDER BY DATE DESC LIMIT 5";
    $result = mysql_query&#40;$query&#41; or die &#40;"Could not execute query"&#41;;
 
    while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41; &#123;
    
    $title=$row&#91;'title'&#93;;
$url='news.php?id='.$row&#91;'id'&#93;;
$link=$url;

        extract&#40;$row&#41;;
 
        $rssfeed .= '<item>';
        $rssfeed .= '<title>' . $title . '</title>';
        $rssfeed .= '<link>' . $link . '</link>';
        $rssfeed .= '</item>';
    &#125;
 
    $rssfeed .= '</channel>';
    $rssfeed .= '</rss>';
 
    echo $rssfeed;
?>
Με αυτόν είναι καλύτερα ο Explorer το διαβάζει κανονικά και οι τίτλοι στο xml γίνονται σωστά αυτόματα link που αν τα πατήσεις πάς στο εκάστοτε άρθρο.

Όμως προς μεγάλη μου απογοήτευση αν και ο fiefox το διαβάζει όταν πατήσω στον τίτλο αντί να με στείλει στο εκάστοτε άρθρο πχ http://localhost/news.php?id=51 με στέλνει στην αρχικήσ ελίδα δηλαδή την http://localhost ..άρα δεν δουλεύουν σωστά τα links :(

Επίσης ο Google Chrome διαβάζει το feed μου αλλά όταν δοκίμασα με 2 πρόσθετα του να διαβάσω το http://localhost/rss.php το ένα μου έβγαλε
¨The feed selected seems to be invalid. Please check the URL.

Nerdy Details
The response didn't have a valid responseXML property.
ενώ το άλλο πρόσθετο πάλι που δοκίμασα μου διαβάζει τους τίτλους κανονικά όμως αν
πατήσω σε έναν οποιοδήποτε τίτλο η διευθυνση link που με μεταφέρει είναι λάθος για παράδειγμα αντί να με στείλει στην http://localhost/news.php?id=51 με στέλνει στην http://localhostnews.php?/id=51 δηλαδή δεν βάζει την γραμμή / εκεί που πρέπει και την βάζει μετάξύ .php? και id=51 όπως βλέπετε..

έχω κατσουφιάσει δεν περίμενα να είναι τόσο κουραστικό...... ούΦ!

HELP

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 14 Αύγ 2014 21:33

Αποφάσισε με ποιον κώδικα θα πας. Δεν γίνεται να τα συζητάμε όλα μαζί.

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 14 Αύγ 2014 22:21

Με τον 2ο γιατί δουλεύει καλύτερα από τον 1ο. Μην με μαλώνεις όμως μάγκα μου ;)

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 14 Αύγ 2014 23:17

Αν σε μαλώνω είναι επειδή είσαι ζημιάρα! :P

Σοβαρά τώρα, δεν γίνεται να έχεις όλες τις εκδοχές στο τραπέζι. Διάλεξε μία και κάντην να δουλέψει.

Όπως είπα και πριν, υποπτεύομαι ότι οι εντολές που είναι πριν από το echo προκαλούν κάποιο μήνυμα λάθους. Εξ ου και "Αριθμός γραμμής 2, Στήλη 1".

Εκτέλεσέ το, κάνε δεξί κλικ --> view source και πόσταρε τον κώδικα που σου παράγει (τουλάχιστον τις πρώτες γραμμές).

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 14 Αύγ 2014 23:25

Αυτό είναι το source code :

Κώδικας: Επιλογή όλων

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Localhost Rss</title>
<link>http&#58;//www.localhost.com</link>
<description>Localhost Feed</description>
<language>el</language>
<copyright>Copyright</copyright>
<item>
<title>Νέα από τον πλανήτη Άρη</title>
<link>news.php?id=51</link>
</item>
<item>
<title>Νέα από τον πλανήτη Αφροδίτη</title>
<link>news.php?id=52</link>
</item>
</channel></rss>
Αλλά δεν καταλαβαίνω σε τι θα σε βοηθήσει αυτό, είναι λάθος άραγε ;
Και επειδή στο query έχω LIMIT 5 έχει άλλα τρία items με νέα από Δία, Ουρανό και Κρόνο.
Όταν λες οτι το πρόβλημα ίσως βρίσκεται στις εντολές πριν από το echo ποιο echo θές να πείς στον 2ο κώδικα ; Echo έχει μια φορά στο τέλος το echo $rssfeed; .

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 14 Αύγ 2014 23:57

Όχι, μιλώ πάντα για το 1ο listing.

Να σου πω που βοηθάει: Είχα την ευκαιρία να το ανεβάσω κάπου για να κάνω τις δοκιμές μου.

Αυτό το xml είναι σωστό, δεν βγάζει κανένα λάθος.
Αν όμως του προσθέσω μία κενή γραμμη στην αρχή... voila!

Για δες λοιπόν, μήπως το source σου έχει καμιά κενή γραμμή στην αρχή (το <?xml ξεκινά από τη γραμμή 2) και ...μας το κρατάς μυστικό;

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 15 Αύγ 2014 00:02

Ναι το source του 1ου είχε μια κενή γραμμή αν και εγώ όταν το έγραφα δεν άφησα καμία κενή γραμμή και το κοίταξα πολλές φορές όπως προ-είπα για κενά και κενές γραμμές (ΠΕΡΙΕΡΓΟ) !

Όμως δεν ασχολούμαι με τον 1ο κώδικα πια γιατί δε δούλευε σε εμένα ΤΑΛΑΙΠΩΡΗΘΗΚΑ η ΚΑΨΕΡΗ, δεν μπορείς να κοιτάξεις τον 2ο plz ;

Ο 2ος κώδικας στο source code δεν εμφανίζει κενή γραμμή !

EDIT: Μια απορία μάγκα μου, εσύ πως αποθήκευσες το αρχείο rss.php σε planets.xml (http://demos.geomagas.gr/non-wp/planets.xml) γιατί εγώ το έχω σαν rss.php φτάνει απλά να το αποθηκεύσω σε rss.xml δεν θα φαίνονται o php κώδικας και το query της mysql αν το αποθηκεύσω ως .xml ;

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 15 Αύγ 2014 00:19

Η κενή γραμμή μπορεί να υπάρχει πριν από το <?php. Φρόντισε αυτό να ξεκινά από τον πρώτο χαρακτήρα του .php σου, να μην έχει ούτε ένα space πριν.

Για την απορία σου, απ' ότι θυμάσαι, μου έδωσες το output του προγράμματός σου και εγώ απλά το αποθήκευσα σαν ένα στατικό xml. Δεν χρειάζεται να έχω το php για να το παράγω.

Με τον 2ο κώδικα, ποιο ακριβώς είναι το πρόβλημα, γιατί διάβασα παραπάνω αλλά μπερδεύτηκα. Καλό θα ήταν να ποστάρεις πάλι το source από τον browser σου (για τους ίδιους λόγους με πριν... ;) )

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 15 Αύγ 2014 00:24

geomagas έγραψε:Η κενή γραμμή μπορεί να υπάρχει πριν από το <?php. Φρόντισε αυτό να ξεκινά από τον πρώτο χαρακτήρα του .php σου, να μην έχει ούτε ένα space πριν.

Για την απορία σου, απ' ότι θυμάσαι, μου έδωσες το output του προγράμματός σου και εγώ απλά το αποθήκευσα σαν ένα στατικό xml. Δεν χρειάζεται να έχω το php για να το παράγω.

Με τον 2ο κώδικα, ποιο ακριβώς είναι το πρόβλημα, γιατί διάβασα παραπάνω αλλά μπερδεύτηκα. Καλό θα ήταν να ποστάρεις πάλι το source από τον browser σου (για τους ίδιους λόγους με πριν... ;) )
Ωχ παναγιά μου, κενή γραμμή εγώ δεν άφησα και το έψαξα από μόνη μου και δεν βρήκα κάποιο κενο η αρχή 'ηταν με <?php κλασσικά και κανένα κενό ή γραμμή πρίν γιαυτό έφαγα τα μάτια και την πλατίτσα μου..

Ok με το .xml κατάλαβα το πήρες έτοιμο.

Το output που σου έδωσα ήταν του 2ου κώδικα έτσι ΟΧΙ του 1ου !!!
Ποια είναι τα θέματα με τον 2ο κώδικα (δες παρακαλώ τι έγραψα παραπάνω Στις: Σήμερα στις 20:18 ) μην τα ξαναγράφω κρίμα θα ναι αφού τα ανέφερα όλα.. λυπήσου τα χεράκια και τα ματάκια μου :beauty: :o

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από geomagas » 15 Αύγ 2014 00:49

jesika έγραψε:Ποια είναι τα θέματα με τον 2ο κώδικα (δες παρακαλώ τι έγραψα παραπάνω Στις: Σήμερα στις 20:18 ) μην τα ξαναγράφω κρίμα θα ναι αφού τα ανέφερα όλα.. λυπήσου τα χεράκια και τα ματάκια μου :beauty: :o
Αυτό είδα και μπερδεύτηκα. Δεν μου κάνεις τη σούμα; Help me help you.
jesika έγραψε:Το output που σου έδωσα ήταν του 2ου κώδικα έτσι ΟΧΙ του 1ου !!!
Αφού λοιπόν είναι σωστό (όπως είδαμε παραπάνω) που είναι το πρόβλημα;
Τώρα μπερδεύτηκα περισσότερο... :-?

Άβαταρ μέλους
jesika
Δημοσιεύσεις: 11
Εγγραφή: 14 Αύγ 2014 16:41
Τοποθεσία: Athens

XML Parsing Error: xml processing instruction not at start of external entity

Δημοσίευση από jesika » 15 Αύγ 2014 00:59

Τα προβληματα που αντιμετωπισα με τον 2ο κωδικα ειναι αυτα :

Με αυτόν είναι καλύτερα ο Explorer το διαβάζει κανονικά και οι τίτλοι στο xml γίνονται σωστά αυτόματα link που αν τα πατήσεις πάς στο εκάστοτε άρθρο.

Όμως προς μεγάλη μου απογοήτευση αν και ο fiefox το διαβάζει όταν πατήσω στον τίτλο αντί να με στείλει στο εκάστοτε άρθρο πχ http://localhost/news.php?id=51 με στέλνει στην αρχικήσ ελίδα δηλαδή την http://localhost ..άρα δεν δουλεύουν σωστά τα links

Επίσης ο Google Chrome διαβάζει το feed μου αλλά όταν δοκίμασα με 2 πρόσθετα του να διαβάσω το http://localhost/rss.php το ένα μου έβγαλε
¨The feed selected seems to be invalid. Please check the URL.

Nerdy Details
The response didn't have a valid responseXML property.
ενώ το άλλο πρόσθετο πάλι που δοκίμασα μου διαβάζει τους τίτλους κανονικά όμως αν
πατήσω σε έναν οποιοδήποτε τίτλο η διεύθυνση link που με μεταφέρει είναι λάθος για παράδειγμα αντί να με στείλει στην http://localhost/news.php?id=51 με στέλνει στην http://localhostnews.php?/id=51 δηλαδή δεν βάζει την γραμμή / εκεί που πρέπει και την βάζει μετάξύ .php? και id=51 όπως βλέπετε..

Οποτε καλυτερα να δοκιμασεις τον php κωδικα και οχι απλα το xml output.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες