Avatar billede cogitans Nybegynder
21. april 2005 - 15:08 Der er 11 kommentarer og
1 løsning

Elementer i XMLdokument

Jeg har et xmldokument på formen:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<Book>
  <Titel id="01">
    Bog1
  </Titel>
  <Titel id="02">
    Bog2
  </Titel>
</Book>

Så vil jeg gerne tilføje flere elementer - derne inden i de andre elementer. F.eks.:
  <Titel id="01">
    Bog1
    <forfatter>
      abc
    </forfatter>
  </Titel>

Når jeg så forsøger at læse filen i et datagrid, så siger den, at der ikke findes noget 'Titel_text'. Min læsning af filen ser således ud:

<form id="Form1" method="post" runat="server">
  <asp:DataGrid id="DataGrid1" runat="server" Height="500px" AllowPaging="True" HorizontalAlign="Center" AutoGenerateColumns="False">
  <Columns>
    <asp:BoundColumn DataField="Titel_text" HeaderText="Kursus"></asp:BoundColumn>
    <asp:BoundColumn DataField="id" HeaderText="Id"></asp:BoundColumn>
    <asp:BoundColumn DataField="forfatter" HeaderText="Forfatter"></asp:BoundColumn>
  </Columns>
  </asp:DataGrid>
</form>

Hvor går det galt? Er xmlDokumentet ikke bygget rigtigt op?
Avatar billede arne_v Ekspert
21. april 2005 - 15:15 #1
1)

Den har vel helt ret i at der ikke er et <Titel_text>...</Titel_text>

2)

Jeg kan ikke lide den måde du ligger elementer inden i emlementer på. Det er
valid XML. Men ikke pænt efter min mening.
Avatar billede cogitans Nybegynder
21. april 2005 - 15:20 #2
1:
Hvis jeg kører det uden <forfatter>-delen, så fungerer det fint. Hvis jeg ikke skriver DataField="Titel_text", så kan den ikke finde værdien/teksten for elementet "Titel".

2:
Hvordan skal det så gøres, hvis jeg gerne vil gemme informationer om forfatteren ved hver bogtitel (så det bliver pænt)?
Avatar billede arne_v Ekspert
21. april 2005 - 15:24 #3
<books>
  <book id="1">
      <title>ahjagsds</title>
      <authors>
        <author>hjavsja</author>
      </authors>
  </book>
  <book id="2">
      <title>ahjagsds</title>
      <authors>
        <author>hjavsja</author>
        <author>hjavsja</author>
      </authors>
  </book>
</books>

vil efter min mening være pænt XML (jeg ved ikke hvor godt det passer med
DataGrid)
Avatar billede cogitans Nybegynder
21. april 2005 - 15:34 #4
Nu har jeg forsøgt med <book>-elementet. Og nu fungerer det ikke med <titel_text>. Hvis jeg så skriver <Titel>, så fungerer det heller ikke. Hvad er det for en fejl, som nu er opstået?
Avatar billede arne_v Ekspert
21. april 2005 - 21:01 #5
jeg er lidt lost - jeg kender ikke noget til kombinationen DataGrid og XmLDocument - og
jeg forstår ikke hvor den titel_text skulle komme fra
Avatar billede cogitans Nybegynder
21. april 2005 - 21:24 #6
Titel_text er den tekst, som står i elementet <Titel> (f.eks. "Bog1"). Jeg har kun kunnet få fat i <Titel>elementet ved at kalde det vha. "Titel_text". Jeg ved ikke, om det evt. er fordi, at der er en atribut i <Titel>, at man kun kan få fat i data ved det kald. (?)
Ved du, hvordan man søger XmlDokumentet igennem for et bestemt datafelt?
Avatar billede arne_v Ekspert
21. april 2005 - 21:27 #7
I et XmlDocument kan du bruge XPath med SelectNodes og SelectSingleNode
Avatar billede cogitans Nybegynder
21. april 2005 - 21:59 #8
Alrighty then - så skal jeg bare lige have bygget dokumentet rigtigt op ;-)
Avatar billede cogitans Nybegynder
24. april 2005 - 12:31 #9
Den vil ikke acceptere "authors" i datagrid'et. Altså hvis jeg har et element ("authors"), hvor der ligger 2 underelementer i ("author"). Så siger den, at der ikke findes et datakilde under navnet "author". Kan det være fordi, at man skal "dot'e" sig vej ind til underelementet?
Avatar billede arne_v Ekspert
24. april 2005 - 12:36 #10
hvis du bruger XPath skal du slash'e dig vej ind
Avatar billede cogitans Nybegynder
24. april 2005 - 12:49 #11
Det gør jeg ikke. Jeg overlader det hele til aspx-filen. Altså i html'en:
<asp:BoundColumn DataField="Author" SortExpression="Author" HeaderText="Author"></asp:BoundColumn>
Avatar billede cogitans Nybegynder
11. oktober 2005 - 13:41 #12
lukkes
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester