Καλησπέρα,
Προσπαθώ με VB.NET να κάνω αναζήτηση μέσω XPATH 1.0 σε ένα XML που τα element του περιέχουν και ελληνικούς χαρακτήρες με τόνους.
Για να μετατρέψω το περιεχόμενο των xml element και των keyword της αναζήτησης στο ίδιο λεκτικό χρησιμοποιώ τη μέθοδο translate, όπως μπορείτε να δείτε παρακάτω:
'The XPATH statement returns the 1st (Title in this case) and the 2nd (Author in this case) node of an entry that has a node whose value contains the keyword.
objNodes = objDoc.SelectNodes("/root/entry[" & l & "][*[contains(translate(text(),'abcdefghijklmnopqrstuvxyzαβγδεζηθικλμνξοπρστυφχψωοαεηιυωιυιυ','ABCDEFGHIJKLMNOPQRSTUVXYZΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩόάέήίύώϊΰΐϋ'),translate('" & Keywords & "','abcdefghijklmnopqrstuvxyzαβγδεζηθικλμνξοπρστυφχψωοαεηιυωιυιυ','ABCDEFGHIJKLMNOPQRSTUVXYZΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩόάέήίύώϊΰΐϋ'))]]/*[1] | /root/entry[" & l & "][*[contains(translate(text(),'abcdefghijklmnopqrstuvxyzαβγδεζηθικλμνξοπρστυφχψωοαεηιυωιυιυ','ABCDEFGHIJKLMNOPQRSTUVXYZΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩόάέήίύώϊΰΐϋ'),translate('" & Keywords & "','abcdefghijklmnopqrstuvxyzαβγδεζηθικλμνξοπρστυφχψωοαεηιυωιυιυ','ABCDEFGHIJKLMNOPQRSTUVXYZΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩόάέήίύώϊΰΐϋ'))]]/*[2]")
Το πρόβλημα είναι ότι κάποιες λέξεις δεν τις βρίσκει. Π.χ. δεν βρίσκει τη λέξη «Ανάλυση». Μπορεί κάποιος να μου εξηγήσει τον λόγο, δεδομένου ότι υπάρχει αντιστοιχία χαρακτήρων 1-1 όσον αφορά στο 2ο και στο 3ο όρισμα της translate (η translate αντικαθιστά όσους χαρακτήρες βρίσκονται στο 1ο όρισμα και ταιριάζουν με τους χαρακτήρες στο 3ο όρισμα με τους χαρακτήρες στο 2ο όρισμα).
Ευχαριστώ.