Πώς μπορώ να κάνω LINQ σε XML και HTML δουλειά μαζί;

ψήφοι
1

Έχω ένα πίνακα html

  <table border=0 width=100%>
        <tr class=headerbg>
            <th width=5%>
                No
            </th>
            <th width=30%>
                Name
            </th>
            <th width=20%>
                Department or Division
            </th>
            <th width=25%>
                Email
            </th>
            <th width=20%>
                Staff/Student
            </th>
        </tr>
        <tr class=bg2>
            <td>
                1
            </td>
            <td>
                <strong><a class=searchLink2 href=tel_search.php?fore=Dave&amp;sur=Rumber>Dave Rumber</a></strong>
            </td>
            <td>
                Medical School
            </td>
            <td>
                <a class=searchLink2 href=mailto:Dave.Rumber@Home.com>Dave.Rumber@Home.com</a>
            </td>
            <td>
                Student&nbsp;
            </td>
        </tr>
    </table>

Μερικές φορές θα υπάρχουν περισσότερες από μία σειρά αποτελεσμάτων ανθρώπων. Θα ήθελα να είναι σε θέση να περάσει μέσα από κάθε σειρά και κόβω το όνομα και το e-mail σας πληροφορίες και να κάνετε κάποια άλλη επεξεργασία. Βάλτε τα δεδομένα σε ένα DataGrid, και, ενδεχομένως, σε μια βάση δεδομένων.

Υποθέτω ότι η ερώτησή μου είναι πώς μπορώ να το κάνω αυτό;

  string table = GetContents(buffer);

  table = table.Replace(&nbsp;, );
  table = table.Replace(&, &amp;);

  XElement inters = XElement.Parse(table);

Μπορώ να το βάλετε σε ένα XElement, αλλά δεν είμαι σίγουρος πού να πάτε από εδώ!

Ευχαριστώ!

Δημοσιεύθηκε 09/12/2008 στις 18:43
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
1

Εδώ είναι μερικά κωδικό ελεύθερο που θα πρέπει να ξεκινήσετε. Μην το κάνετε αυτό στην παραγωγή, αυτό είναι μόνο μια εκπαιδευτική επίδειξη.

List<XElement> rows = inters
  .Descendants
  .Where(x => x.Name == "tr")
  .Skip(1) //header
  .ToList();
//
// and now to turn rows into people
List<Person> people = rows
  //filter to anchor.  should be two.
  .Select(r => r.Descendants.Where(a => a.Name = "a"))
  //Project each anchor pair into a Person
  .Select(g => new Person()
  {
    Name = g.First().Value,
    Email = g.Skip(1).First().Value
  })
  .ToList();
Απαντήθηκε 09/12/2008 στις 20:46
πηγή χρήστη

ψήφοι
1

Μπορείτε να χρησιμοποιήσετε πραγματικά έναν πίνακα HTML ως πηγή δεδομένων για OLE DB:

http://connectionstrings.com/html-table

Πλήρης Αποκάλυψη: Δεν έχω πραγματικά δοκιμάσει αυτό - αλλά υποθέτω ότι θα είναι πολύ πιο εύκολο από ό, τι προσπαθεί να αναλύσει XML από HTML.

Απαντήθηκε 09/12/2008 στις 18:46
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more