Hej! Titta i hjälpen under dataset.ReadXML. Metoden läser in data från en XML-fil i ett dataset och det kan du sedan använda som källa för din repeater. hej.Visa xml-fil med asp:repeater
Hur läser jag följande data med en asp:repeater. (Utan att göra ändringar i filen)
<?xml version="1.0" encoding="utf-8"?>
<JonasRecordset xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://services.jonas.se/schemas/Jonasservice">
<typeinfo xmlns="http://services.jonas.se/schemas/jonasrecordset">
<xs:schema id="table" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="table" d4p1:IsDataSet="true" xmlns:d4p1="urn:schemas-microsoft-com:xml-msdata">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="record">
<xs:complexType>
<xs:sequence>
<xs:element name="Id" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="33" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="B" type="xs:double" minOccurs="0" maxOccurs="1" />
<xs:element name="A" type="xs:double" minOccurs="0" maxOccurs="1" />
<xs:element name="PdHi" type="xs:double" minOccurs="0" maxOccurs="1" />
<xs:element name="PdLo" type="xs:double" minOccurs="0" maxOccurs="1" />
<xs:element name="Pd" type="xs:double" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
</typeinfo>
<data xmlns="http://services.jonas.se/schemas/jonasrecordset">
<table xmlns="">
<record>
<Id>ABB</Id>
<B>24.6</B>
<A>24.7</A>
<PdHi>25</PdHi>
<PdLo>24.5</PdLo>
<Pd>24.7</Pd>
</record>
<record>
<Id>ACAD-B</Id>
<B>11</B>
<A>11.3</A>
<PdHi>11.3</PdHi>
<PdLo>11.3</PdLo>
<Pd>11.3</Pd>
</record>
<record>
<Id>ACAP-A</Id>
<B>35.5</B>
</record>
</table>
</data>
</JonasRecordset>
Följande kod fungerar med xml-filen nedan men inte med xml-filen ovan.
Dim Test As New DataSet
Test.ReadXml(MapPath("XML-Files/Test.xml"))
tabelldata.DataSource = Test
tabelldata.DataBind()
<asp:repeater id="tabelldata" runat="server">
<HeaderTemplate>
<table border="1" width="500">
<tr bgcolor="#ffffcc">
<th align="left">Aktie</th>
<th align="left">Köp</th>
<th align="left">Sälj</th>
<th align="left">Högst</th>
<th align="left">Lägst</th>
<th align="left">Senast</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Container.DataItem("Id")%></td>
<td><%# Container.DataItem("B")%></td>
<td><%# Container.DataItem("A")%></td>
<td><%# Container.DataItem("PdHi")%></td>
<td><%# Container.DataItem("PdLo")%></td>
<td><%# Container.DataItem("Pd")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:repeater>
Om jag tar bort huvudet i filen så att endast föjande data finns fungerar det bra.
<table xmlns="">
<record>
<Id>ABB</Id>
<B>24.6</B>
<A>24.7</A>
<PdHi>25</PdHi>
<PdLo>24.5</PdLo>
<Pd>24.7</Pd>
</record>
<record>
<Id>ACAD-B</Id>
<B>11</B>
<A>11.3</A>
<PdHi>11.3</PdHi>
<PdLo>11.3</PdLo>
<Pd>11.3</Pd>
</record>
<record>
<Id>ACAP-A</Id>
<B>35.5</B>
</record>
</table>Sv: Visa xml-fil med asp:repeater
Metoden har dessutom en massa överladdade varianter men den som du är ute efter ser ut ungefär som
<code>
Dim ds as dataset
Dim XMLStream as New IO.Stream("minXMLFil.xml")
ds = ds.ReadXML(XMLStream)
</code>
//Mikael.NETSv: Visa xml-fil med asp:repeater
Testa:
<code>
Test.ReadXml(MapPath("XML-Files/Test.xml"), XmlReadMode.IgnoreSchema)
// Eller
Test.ReadXml(MapPath("XML-Files/Test.xml"), XmlReadMode.DiffGram)
</code>
//fredda