[ demach @ 24.04.2006. 14:40 ] @
imam najobičniji xml:

Code:

<?xml version="1.0" encoding="utf-8" ?>
<test>
    <pok>
        <value>0</value>    
        <name>test</name>
    </pok>
    <pok>
        <value>1</value>    
        <name>prezime</name>
    </pok>
    <pok>
        <value>2</value>    
        <name>ime</name>
    </pok>
    <pok>
        <value>3</value>    
        <name>valute</name>
    </pok>
    <pok>
        <value>4</value>    
        <name>vozilo</name>
    </pok>
    <pok>
        <value>5</value>    
        <name>osobna</name>
    </pok>        
</test>



i iz njega punim combobox

Code:

Dim url As String = System.Web.HttpRuntime.AppDomainAppPath + "\XML\Lista.xml"
Dim ds As System.Data.DataSet = New System.Data.DataSet
ds.ReadXml(url)
cboTEST.DataSource = ds.Tables(0)
cboTEST.DataValueField = ds.Tables(0).Columns(0).ToString()
cboTEST.DataTextField = ds.Tables(0).Columns(1).ToString()
cboTEST.DataBind()


I sve super radi. No, volio bih imati multilingual combo. Dakle, ovisno o nečemu, promijenim jezik.
Probao sam s ds.Tables(1) kreiravši u xml-u drugu tablicu, i ockey radi. No, kako bih to mogao riješiti ID-em jezika?

Npr:
Code:

<?xml version="1.0" encoding="utf-8" ?>
<test>
    <lang id="1">
        <pok>
            <value>0</value>    
            <name>test</name>
        </pok>
        <pok>
            <value>1</value>    
            <name>prezime</name>
        </pok>
        <pok>
            <value>2</value>    
            <name>ime</name>
        </pok>
        <pok>
            <value>3</value>    
            <name>valute</name>
        </pok>
        <pok>
            <value>4</value>    
            <name>vozilo</name>
        </pok>
        <pok>
            <value>5</value>    
            <name>osobna</name>
        </pok>
    </lang>
    <lang ID="2">
        <pok>
            <value>0</value>    
            <name>test2</name>
        </pok>
        <pok>
            <value>1</value>    
            <name>prezime2</name>
        </pok>
        <pok>
            <value>2</value>    
            <name>ime2</name>
        </pok>
        <pok>
            <value>3</value>    
            <name>valute2</name>
        </pok>
        <pok>
            <value>4</value>    
            <name>vozilo2</name>
        </pok>
        <pok>
            <value>5</value>    
            <name>osobna2</name>
        </pok>
    </lang>
</test>

Kako onda čitati xml? Trebam ideje? :) Unaprijed hvala!



[Ovu poruku je menjao demach dana 24.04.2006. u 15:41 GMT+1]
[ mmix @ 24.04.2006. 15:30 ] @
Sam dataset objekat nece znati sta ti pokusavas da uradis.

po meni ti je najjednostavnije da ucitas XML, i da ga transformises (XSLTransform) parametrizovanom transformacijom koja ce iz osnovnog XML-a "izvuci" samo onaj lang node koji odgovara parametru i onda ucitas taj transformisani XML u DataSet.

Transformacija koja tebi treba je (parametar je LangID):
Code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml"/>
    <xsl:param name="LangID" select="'1'"/>

    <xsl:template match="//test">
        <test>
            <lang>
                <xsl:copy-of select ="lang[@id=$LangID]/*"/>
            </lang>
        </test>
    </xsl:template>

</xsl:stylesheet>


PS. XPath koji koristi XSLT je po defaultu case sensitive. Ili stavi da je svaki id=<broj> ili da je svaki ID=<broj>, nemoj mesati id i ID.