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

c# προβλημα με xml


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

Δημοσ.

καλησπέρα
φτιάχνω ένα πρόγραμμα για windows σε c# όμως εδώ και καιρό έχω κόλληση σε ένα σημείο στο οποίο πρέπει να αποθηκεύετε σε ένα αρχείο xml μια λίστα με δυο ονόματα και μετά όταν να φορτώνει τα πρώτα ονόματα και μετά με το πρώτο όνομα να μπορώ να πάρω το δεύτερο 

μέχρι τώρα το έχω κάνει να αποθηκεύετε κάπως έτσι 
<onoma>

   <xml>onoma2<xml/>

<onoma/>

<test>

   <xml>test1<xml/>

<test/>

το πρόβλημα είναι ότι στο πρώτο δεν μπορώ να βάλω κενά,καποιους χαρακτήρες κλπ

 

καμιά ιδέα??? 

Δημοσ.

Δεν ξέρω ακριβώς τι θέλεις να φτιάξεις (είναι λίγο περίεργο το schema για το xml που περιγράφεις), αλλά δοκίμασε το παρακάτω (χρειάζεται το System.Xml.Linq namespace):

 

    var xml = new XElement("root",
            new XElement("onoma",
                new XElement("xml", "[Put your name here]")));
    xml.Save("mysuperduper.xml");
Δημοσ.

Δεν ξέρω ακριβώς τι θέλεις να φτιάξεις (είναι λίγο περίεργο το schema για το xml που περιγράφεις), αλλά δοκίμασε το παρακάτω (χρειάζεται το System.Xml.Linq namespace):

 

    var xml = new XElement("root",
            new XElement("onoma",
                new XElement("xml", "[Put your name here]")));
    xml.Save("mysuperduper.xml");

μαλον δεν καταλαβες σωστα αυτο το εχω κανει και ψαχνω κανενα αλλο τροπο προσπαθησα με namescape αλλα δεν μπορεσα

Δημοσ.

To κάνεις λάθος το onoma σου είναι δεδομένο δεν πρέπει να μπει σαν element name.

 

Έστω ότι έχεις 3 άτομα με όνομα πχ Παπαδόπουλος Χρήστος,Παπαδόπουλος Γιώργος και Παπαδοπούλου Ελευθερία το xml σου θα είναι σε αυτή την μορφή

 

<Παπαδόπουλος>
   <xml>Χρήστος<xml/>
</Παπαδόπουλος>
<Παπαδόπουλος>
   <xml>Γιώργος<xml/>
</Παπαδόπουλος>
<Παπαδοπούλου>
   <xml>Ελευθερία<xml/>
</Παπαδοπούλου>
Συγνώμη αλλά αυτό δεν είναι xml.

 

Υπάρχουν 2 τρόποι να το κάνεις:

 

-είτε το Όνομα και το Επώνυμο θα είναι ξεχωριστά elements σε ένα ενιαίο element με όνομα πχ Person.Για το παραπάνω παράδειγμα θα το κάνεις έτσι

 

<Person>
  <FirstName>Χρήστος</FirstName>
  <LastName>Παπαδόπουλος</LastName>
</Person>
<Person>
  <FirstName>Γιώργος</FirstName>
  <LastName>Παπαδόπουλος</LastName>
</Person>
<Person>
  <FirstName>Ελευθερία</FirstName>
  <LastName>Παπαδοπούλου</LastName>
</Person>
-είτε το Όνομα και το Επώνυμο θα είναι ξεχωριστά Attributes.Για το παραπάνω παράδειγμα

 

<Person FirstName="Χρήστος" LastName="Παπαδόπουλος">
<Person FirstName="Γιώργος" LastName="Παπαδόπουλος">
<Person FirstName="Ελευθερία" LastName="Παπαδοπούλου">
Τώρα για το πως θα κάνεις την αναζήτηση υπ'αρχουν 2 τρόποι και εδώ:

 

-"Χαζή" μέθοδος.Κάθε φορά διαβάζει όλο το αρχείο άτομο άτομο και ανάλογα με το πως έχεις βάλει το όνομα ή το επίθετο (σαν element ή σαν attribute) ελέγχει αν έχει την ίδια τιμή με αυτό που ψάχνεις και σου επιστρέφει η όχι το άτομο.

 

-Hello XPath.Στην ουσία φτιάχνεις κάτι σαν query όπως θα έκανες σε μια βάση μόνο που εδώ ψάχνεις μέσα στο xml αρχείο.Περισσότερες πληροφορίες

 

http://support.microsoft.com/kb/308333 και http://w3schools.com/xpath/default.asp

 

Το XPath είναι πιο γρήγορο από τον πρώτο τρόπο.Το μόνο που πρέπει να κάνεις είναι μια αναδρομή στα αποτελέσματα.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...