therock Δημοσ. 3 Απριλίου 2020 Δημοσ. 3 Απριλίου 2020 Εχω ενα αρχειο .xml το οποιο δεν εχει tag Κλεισιματος και προσπαθω να βρω ενα τροπο να τα κλεισω. ψαχνοντας στο ιντερνετ διαβασα καποιον που ειπε να χρησιμοποιησω reqular expressions. Επειδη δε γνωριζω απο προγραμματισμο, ειδα ενα βιντεακι στο youtube με τα εισαγωγικα και με πιασε το κεφαλι μου. Το αρχειο μου εχει εγγραφες με την εξης μορφη. Οπως θα δειτε περα απο το record και το data στο τελος ολα τα αλλα ειναι ανοικτα. Πως μπορω να τα κλεισω ωστε μετα τι τιμη τους να εχει κλειστο tag? Αυτη ειναι μια εγγραφη και το αρχειο μου εχει 964, οποτε χειροκινητα δε παιζει κατι τετοιο <record> <annotationAssetID> 21B8B42286D791898D90F97E6C9AF669 <annotationCreationDate> 1374477130 <annotationCreatorIdentifier> com~apple~iBooks <annotationDeleted> 0 <annotationIsUnderline> 0 <annotationLocation> epubcfi(/6/16[id124]!/4/52/10/1) <annotationModificationDate> 1374477132 <annotationStyle> 3 <annotationType> 1 <annotationUuid> D7809B1F-21F7-4C8A-AE58-7C0C9EEAEC69 <futureProofing5> 2. The Attraction <futureProofing6> 396169932.000000 <plAbsolutePhysicalLocation> 0 <plLocationRangeEnd> 0 <plLocationRangeStart> 7 <plUserData> <data> YnBsaXN0MDDWAQIDBAUGBwgMFx8gWWVuZE9mZnNldFVz dXBlcllzdGFydFBhdGhXZW5kUGF0aFVjbGFzc1tzdGFy dE9mZnNldCIAAAAA0gkFCgtXb3JkaW5hbBAHWkJLTG9j YXRpb26iDRTTDg8QERITWWNsYXNzTmFtZVVpbmRleFd0 YWdOYW1lWWNhbGlicmUzOBAwUm9s0w4PEBUKFlljYWxp YnJlMTJTZGl2ohgc0w4PEBkaG1ljYWxpYnJlMzgQMFJv bNMODxAdCh5ZY2FsaWJyZTEyU2Rpdl5CS0VwdWJMb2Nh dGlvbiIAAAAACBUfJS83PUlOU1tdaGtyfIKKlJaZoKqu sbjCxMfO2NzrAAAAAAAAAQEAAAAAAAAAIQAAAAAAAAAA AAAAAAAAAPA= </data> </record>
marios28 Δημοσ. 3 Απριλίου 2020 Δημοσ. 3 Απριλίου 2020 Δε χρειάζεται να ξέρεις προγραμματισμό. Άνοιξε το αρχείο με έναν οποιοδήποτε κειμενογράφο. Προφανώς κράτα ένα αντίγραφο του αρχικού αρχείου,. Θα κάνεις αντικαταστάσεις (συνήθως edit->replace) ως εξής: αντικατάσταση του: <annotationCreationDate> με: </annotationAssetID><annotationCreationDate> Επιλέγεις αντικατάσταση όλων. συνεχίζεις με την ίδια λογική μέχρι το <plUserData> δηλαδή αντικατάσταση του <plUserData> με </plLocationRangeStart><plUserData> Σε 5 λεπτά θα έχεις τελειώσει.
therock Δημοσ. 3 Απριλίου 2020 Μέλος Δημοσ. 3 Απριλίου 2020 (επεξεργασμένο) ...Ακυρο μαλλον εχεις δικιο, κατσε να δοκιμασω αυτο που πες EDIT: Ξερεις τι, σωστη σκεψη αλλα δε πετυχε. Διοτι καθε εγγραφη μπορει να εχει αλλα tags. ΠΧ μπορει το πρωτο record να εχει name lastname age Και το επομενο να εχει name age οποτε με το αναστροφο replace δημιοργω κενα σε μια εγγραφη που δε θα χε καποιο tag. Οποτε οταν θα παω στο <age> και το κανω </surname><age> θα αφησω ενα κλειστο <surname> σε καποια εγγραφη που δε θα χε τετοιο tag Οποτε θελω αποκλειστικα reqular expression. Δηλαδη να βλεπει το tag που ξεκιναει και στο τελος του κειμενου να το κλεινει. Επεξ/σία 4 Απριλίου 2020 από therock
MastroGiannis Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 Κάτι ψιλοκατάφερα με το απόσπασμα που ανέβασες... Αποσυμπίεσε το συνημμένο στον υπολογιστή σου και άνοιξε το βιβλίο εργασίας record.xlsm (ελπίζω να διαθέτεις το Excel). Ενεργοποίησε της μακροεντολές και πάτα στο κουμπί "Fixed XML". Αν δεις ότι γίνεται η δουλειά, αντικατέστησε το περιεχόμενο του αρχείου record.txt με το XML κείμενό σου και ξαναπάτα το κουμπί. Δυστυχώς, για την ώρα (είναι και λίγο περασμένη), δουλεύει μόνο σε ένα επίπεδο. Για παράδειγμα, θέτει το </plUserData> πριν το <data>, ενώ κανονικά θα πρέπει να μπει μετά το </data>. Την περισσότερη δουλειά όμως πιστεύω να την κάνει σωστά. FixXML.zip
Επισκέπτης Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 ναι αλλά πως μπορείς να ξέρεις ποια tags είναι nested?
therock Δημοσ. 4 Απριλίου 2020 Μέλος Δημοσ. 4 Απριλίου 2020 Εδω ειχα βρει αυτο που ρωταγα αρχικα καθως βλεπεω οτι ο τυπος ρωταει το ιδιο πραγμα με μενα. https://stackoverflow.com/questions/28119526/how-to-fix-the-xml-file-which-missing-closing-tags/feed/ 9 ώρες πριν, MastroGiannis είπε Κάτι ψιλοκατάφερα με το απόσπασμα που ανέβασες... Αποσυμπίεσε το συνημμένο στον υπολογιστή σου και άνοιξε το βιβλίο εργασίας record.xlsm (ελπίζω να διαθέτεις το Excel). Ενεργοποίησε της μακροεντολές και πάτα στο κουμπί "Fixed XML". Αν δεις ότι γίνεται η δουλειά, αντικατέστησε το περιεχόμενο του αρχείου record.txt με το XML κείμενό σου και ξαναπάτα το κουμπί. Δυστυχώς, για την ώρα (είναι και λίγο περασμένη), δουλεύει μόνο σε ένα επίπεδο. Για παράδειγμα, θέτει το </plUserData> πριν το <data>, ενώ κανονικά θα πρέπει να μπει μετά το </data>. Την περισσότερη δουλειά όμως πιστεύω να την κάνει σωστά. FixXML.zip 17 kB · 4 downloads Πολυ καλα προσπαθεια μαν αλλα δε δουλεψε 100%. Καταρχας μου κλεινει το record στα επομενα entries αλλα αυτο λυνεται ευκολα καθως ερχεται παντα πρωτο το annotationAssetID. Οποτε αν κανω ενα απλο replace απο </record><annotationAssetID> σε <annotationAssetID> αφαιρω αυτο το ασκοπο κλεισιμο του record. Το θεμα ειναι ομως οτι καποια entries εχουν εξτρα tags τα οποια εμειναν ανοικτα οταν ετρεξε την εντολη. Στην ουσια το xml για το excel το θελω, καθως θελω να το εισαγω στο powerquery και να μετατρεψω τα tags σε table στηλες και να φτιαξω πινακα απο αυτο το αρχειο. Με τη ρουτινα σου καταφερα να φτιαξω το πινακα απλα ηταν ατελης καθως ελειπαν καποιες στηλες η οποια δεν ειχαν κλειστα tags 2 ώρες πριν, andreas49 είπε ναι αλλά πως μπορείς να ξέρεις ποια tags είναι nested? Σωστος. Δε θελω να ψαχνει αοριστα για tag με εκκρεμοτητα, αλλα μονο απευθειας μετα το κειμενο ΠΧ <tag1>κειμενο ¨<κλεισιμο ταγκ στα καπακια> <tag2> κειμενο <εδω ξανα κλεισιμο> αλλα οχι να κλεινει ενα μεγαλυτερο υποσονολο. Δεν υπαρχει εκκρεμοτητα σε κατι τετοιο Πχ δε θελω <synolo> <tagk> <tagk> και εδω να κλεισει συνολο
marios28 Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 (επεξεργασμένο) Δοκίμασε αυτό που σου στέλνω. Το έφτιαξα το πρόγραμμα βάσει της μιας μόνο εγγραφής. Αν δε λειτουργήσει στείλε μεγαλύτερο δείγμα και αν βρω χρόνο θα προβώ σε διορθώσεις. Το πρόγραμμα λειτουργεί μόνο σε Windows 10. Αν έχεις άλλο λειτουργικό ενημέρωσε. XmlFix.appxbundle Επεξ/σία 4 Απριλίου 2020 από marios28
therock Δημοσ. 4 Απριλίου 2020 Μέλος Δημοσ. 4 Απριλίου 2020 δε μου το περναει. Κατι λεει οτι θελει certificate Εχω βαλει sideload apps και developer mode αλλα και παλι ακυρο το περασα μισο να δοκιμασω
MastroGiannis Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 3 ώρες πριν, andreas49 είπε ναι αλλά πως μπορείς να ξέρεις ποια tags είναι nested? Ομολογώ πως δεν έχω ιδέα!... Ίσως κάποιο άλλο μέλος να έχει κάποια. 39 λεπτά πριν, therock είπε Πολυ καλα προσπαθεια μαν αλλα δε δουλεψε 100%. Καταρχας μου κλεινει το record στα επομενα entries αλλα αυτο λυνεται ευκολα καθως ερχεται παντα πρωτο το annotationAssetID. Οποτε αν κανω ενα απλο replace απο </record><annotationAssetID> σε <annotationAssetID> αφαιρω αυτο το ασκοπο κλεισιμο του record. Το θεμα ειναι ομως οτι καποια entries εχουν εξτρα tags τα οποια εμειναν ανοικτα οταν ετρεξε την εντολη. Στην ουσια το xml για το excel το θελω, καθως θελω να το εισαγω στο powerquery και να μετατρεψω τα tags σε table στηλες και να φτιαξω πινακα απο αυτο το αρχειο. Με τη ρουτινα σου καταφερα να φτιαξω το πινακα απλα ηταν ατελης καθως ελειπαν καποιες στηλες η οποια δεν ειχαν κλειστα tags Όσο έγραφες προχώρησα το αρχείο και τώρα προσφέρει [εκτός της ευελιξίας στην επιλογή αρχείων] τη δυνατότητα αυτοματοποίησης των "χειροκίνητων" διορθώσεων, όπως στο παράδειγμα με το <data> και το <record>, αν και η περίπτωση του <record> θα μπορούσε να προβλεφθεί. Αν η διαδικασία θα επαναλαμβάνεται στο μέλλον, και αφού είσαι ήδη στο περιβάλλον του Excel, νομίζω πως αξίζει να βελτιωθεί κι άλλο και θα χαρώ αν πιάσει τόπο η προσπάθειά μου. FixXML.zip
therock Δημοσ. 4 Απριλίου 2020 Μέλος Δημοσ. 4 Απριλίου 2020 29 λεπτά πριν, marios28 είπε Δοκίμασε αυτό που σου στέλνω. Το έφτιαξα το πρόγραμμα βάσει της μιας μόνο εγγραφής. Αν δε λειτουργήσει στείλε μεγαλύτερο δείγμα και αν βρω χρόνο θα προβώ σε διορθώσεις. Το πρόγραμμα λειτουργεί μόνο σε Windows 10. Αν έχεις άλλο λειτουργικό ενημέρωσε. XmlFix.appxbundle 780 kB · 1 download βαζω το xml αλλα δε παιρνω καποιο output 16 λεπτά πριν, MastroGiannis είπε Ομολογώ πως δεν έχω ιδέα!... Ίσως κάποιο άλλο μέλος να έχει κάποια. Όσο έγραφες προχώρησα το αρχείο και τώρα προσφέρει [εκτός της ευελιξίας στην επιλογή αρχείων] τη δυνατότητα αυτοματοποίησης των "χειροκίνητων" διορθώσεων, όπως στο παράδειγμα με το <data> και το <record>, αν και η περίπτωση του <record> θα μπορούσε να προβλεφθεί. Αν η διαδικασία θα επαναλαμβάνεται στο μέλλον, και αφού είσαι ήδη στο περιβάλλον του Excel, νομίζω πως αξίζει να βελτιωθεί κι άλλο και θα χαρώ αν πιάσει τόπο η προσπάθειά μου. FixXML.zip 24 kB · 0 downloads Μακαρι μαν να δουλεψει. Το προσπαθω τωρα και αν δεν θα δωσω και αλλες λεπτομερεις για το προτζεκτ
marios28 Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 2 λεπτά πριν, therock είπε βαζω το xml αλλα δε παιρνω καποιο output Αν δεν παίρνεις, κάποιο πρόβλημα θα υπάρχει. Πρέπει να στείλεις μεγαλύτερο δείγμα ή καλύτερα όλο το αρχείο.
therock Δημοσ. 4 Απριλίου 2020 Μέλος Δημοσ. 4 Απριλίου 2020 (επεξεργασμένο) 54 λεπτά πριν, MastroGiannis είπε Ομολογώ πως δεν έχω ιδέα!... Ίσως κάποιο άλλο μέλος να έχει κάποια. Όσο έγραφες προχώρησα το αρχείο και τώρα προσφέρει [εκτός της ευελιξίας στην επιλογή αρχείων] τη δυνατότητα αυτοματοποίησης των "χειροκίνητων" διορθώσεων, όπως στο παράδειγμα με το <data> και το <record>, αν και η περίπτωση του <record> θα μπορούσε να προβλεφθεί. Αν η διαδικασία θα επαναλαμβάνεται στο μέλλον, και αφού είσαι ήδη στο περιβάλλον του Excel, νομίζω πως αξίζει να βελτιωθεί κι άλλο και θα χαρώ αν πιάσει τόπο η προσπάθειά μου. FixXML.zip 24 kB · 1 download Καλυτερα πηγε τωρα αλλα παλι ειχε κατι παραλλειψεις. Βεβαια απ οοτι βλεπω τις σημαντικες στηλες τις πηρα, οποτε δεν υπαρχει λογος να σας κουραζω αλλο. Απλα να κανω μια τελικη πληρη αναφορα Το αρχικο αρχειο αναφορα ηταν plist που χρησιμοποιει η apple σε Iphone και ipad και ειναι ενα τυπου xml αλλα με πιο αυστηρη δομη τυπου database oriented. Οποτε εχει εναν ηλιθιο τροπο που το οριζει και μια απλη εγγραφη πχ <name>Chris</name> <lastname>Michael</lastname> <age>28</age> γινεται καπως ετσι <key>name</key> <string>Chris</string> <key>lastname</key> <string>Michael</string> <key>age</key> <integer>28</integer> Δηλαδη το tag το οριζει μεσα σε key και τη τιμη του σε δευτερη γραμμη ωστε να δωσει και τυπο string η integer. Εψαξα αρχικα σε ολο το διαδικτυο να βρω μηπως παιζει καποιος τροπος να μετατρεψεις το Plist σε xml που αναγνωριζει το excel και καθε αλλο προγραμμα αλλα βρισκω μονο ενα βιντεακι που απλα σου λεει πως μεσα απο itunes να κανεις export μια music playlist σε xml και οχι ενα οποιοδηποτε plist αρχειο. Επισης ρωτησα κα ιστο mrexcel forum αλλα ουτε εκει εδωσε καποιος λυση. Ο τροπος που το προσεγγισα ηταν μεσα απο notepad++ εκανα search replace το <key> με < και </Key> με > ωστε να δημιουργησω τα tag ανοιγματος και επισης αντικατεστησα τα <string> </string> <integer> </integer> με κενο, ωστε να ακολουθει η τιμη, και ετσι παρεμενε το κλεισιμο των ανοικτων tags. Κατι Plist editors που βρηκα επισης στο ιντερνετ απλα ανοιγαν τα Plist αλλα δεν ειχαν καποιο σοβαρο export function και οτι να κανες παραμενουν Plist. Εν κατακλειδι με το παραπανω σκριπτακι νομιζω πηρα τι πληροφοριες απο το αρχειο που ειχα τραβηξει, αλλα ιδανικα θα ταν να σκαγε και ενας τροπος να μπορεις να μετατρεψεις ενα .plist σε xml ωστε να μπορεις να το δουλευεις σε excel και οχι απλα να το βλεπεις με καποιον plist viewer Επεξ/σία 4 Απριλίου 2020 από therock
dovecotDev Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 (επεξεργασμένο) Καλησπέρα, Είχα ένα μισάωρο ελεύθερο και λέω να δοκιμάσω κάτι σε PHP. Είναι μια λύση σχετικά υπερβολική, έτσι για να καλύψω τα περισσότερα χαλασμένα XML δεδομένα που μπορεί να διαβάσω, άρα δεν είναι υποχρεωτικός όλος αυτός ο κώδικας. Ως δεδομένα εισαγωγής χρησιμοποίησα το κομμάτι XML της πρώτης ανάρτησης (το αρχείο το ονόμασα data.txt). Είναι ένα γρήγορο και βρώμικο scriptακι. $ php -f ./eat-xml.php [EAT-XML] Loading data.txt... [EAT-XML] Read size: 1161 [EAT-XML] Load records: . [EAT-XML] Records loaded: 1 [EAT-XML] Starting parse procedure <?xml version="1.0"?> <record> <annotationAssetID>21B8B42286D791898D90F97E6C9AF669</annotationAssetID> <annotationCreationDate>1374477130</annotationCreationDate> <annotationCreatorIdentifier>com~apple~iBooks</annotationCreatorIdentifier> <annotationDeleted>0</annotationDeleted> <annotationIsUnderline>0</annotationIsUnderline> <annotationLocation>epubcfi(/6/16[id124]!/4/52/10/1)</annotationLocation> <annotationModificationDate>1374477132</annotationModificationDate> <annotationStyle>3</annotationStyle> <annotationType>1</annotationType> <annotationUuid>D7809B1F-21F7-4C8A-AE58-7C0C9EEAEC69</annotationUuid> <futureProofing5>2. The Attraction</futureProofing5> <futureProofing6>396169932.000000</futureProofing6> <plAbsolutePhysicalLocation>0</plAbsolutePhysicalLocation> <plLocationRangeEnd>0</plLocationRangeEnd> <plLocationRangeStart>7</plLocationRangeStart> <plUserData/> <data>YnBsaXN0MDDWAQIDBAUGBwgMFx8gWWVuZE9mZnNldFVzdXBlcllzdGFydFBhdGhXZW5kUGF0aFVjbGFzc1tzdGFydE9mZnNldCIAAAAA0gkFCgtXb3JkaW5hbBAHWkJLTG9jYXRpb26iDRTTDg8QERITWWNsYXNzTmFtZVVpbmRleFd0YWdOYW1lWWNhbGlicmUzOBAwUm9s0w4PEBUKFlljYWxpYnJlMTJTZGl2ohgc0w4PEBkaG1ljYWxpYnJlMzgQMFJvbNMODxAdCh5ZY2FsaWJyZTEyU2Rpdl5CS0VwdWJMb2NhdGlvbiIAAAAACBUfJS83PUlOU1tdaGtyfIKKlJaZoKqusbjCxMfO2NzrAAAAAAAAAQEAAAAAAAAAIQAAAAAAAAAAAAAAAAAAAPA=</data> </record> [EAT-XML] Game over ΥΓ: Το πρώτο επισυναπτόμενο αρχείο είναι χαλασμένο. Την δεύτερη φορά το ανέβασα ως zip. ΥΓ2: Ξέχασα να αναφέρω πως το scriptακι θέλει τα ακόλουθα modules να είναι εγκατεστημένα: php-mbstring & php-xml eat-xml.zip Επεξ/σία 4 Απριλίου 2020 από dovecotDev
Επισκέπτης Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 (επεξεργασμένο) Μα # echo "[EAT-XML] Skatoules # 😃😃 Επεξ/σία 4 Απριλίου 2020 από Επισκέπτης
dovecotDev Δημοσ. 4 Απριλίου 2020 Δημοσ. 4 Απριλίου 2020 Εγώ προειδοποίησα, είναι ένα... βρώμικο scriptακι 🙃
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα