XML data vrácená dotazem do tabulky?   zodpovězená otázka

ASP.NET WebForms

Ahoj, mám tabulku v SQL a její data zobrazuji ve FormView.

V tabulce jsou v jednom sloupci uživatelská data (sloupec UserData) uložená jako string v XML formátu např: <UserData><a1>hodnota a1</a1><B1>hodnota B1</B1></UserData>

Bohužel neumím tento vácený řetězec dále zpracovat tak, abych z něj vydoloval jen konkrétní hodnotu parametru.

Umím to ztransformovat když to mám v XML souboru, ale nevím k čemu a jak nacpat <%# Bind("UserData") %> abych s tím mohl dále pracovat.

Poradí někdo začátečníkovi?

Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud negenerujete HTML, použijte místo ASPX stránky typ souboru Generic Handler (přípona ASHX) a XML data v přesném formátu si vygenerujte ručně.

Anebo použijte webovou službu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

tak nakonec jsem se překousal přes FindControl a vygoogloval práci s XPath ve VB a výsledek je asi takovýto:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim TextBox_UserData As TextBox = CType(FormView1.FindControl("TextBox_UserData"), TextBox) ' = <%# Eval("UserData") %>'
        Dim TextBox_Rezie As TextBox = CType(FormView1.FindControl("TextBox_Rezie"), TextBox)
        Dim TextBox_Kamera As TextBox = CType(FormView1.FindControl("TextBox_Kamera"), TextBox)
        Dim TextBox_Hudba As TextBox = CType(FormView1.FindControl("TextBox_Hudba"), TextBox)

        ' priklad dat: <UserData><Hudba>Různí interpreti</Hudba><Kamera>Robert Richardson</Kamera><Rezie>Quentin Tarantino</Rezie><ZobrazovatNaWww>True</ZobrazovatNaWww></UserData>

        Dim XMLsourceText As String
        XMLsourceText = TextBox_UserData.Text
        Dim Xml_Document As XPathDocument = New XPathDocument(New StringReader(XMLsourceText))
        Dim Navigator As XPathNavigator = Xml_Document.CreateNavigator()

        Dim NodeIterator As XPathNodeIterator = Navigator.Select("/UserData/Rezie")
        While NodeIterator.MoveNext()
            TextBox_Rezie.Text = NodeIterator.Current.Value
        End While

        NodeIterator = Navigator.Select("/UserData/Kamera")
        While NodeIterator.MoveNext()
            TextBox_Kamera.Text = NodeIterator.Current.Value
        End While

        NodeIterator = Navigator.Select("/UserData/Hudba")
        While NodeIterator.MoveNext()
            TextBox_Hudba.Text = NodeIterator.Current.Value
        End While
    End Sub

Možná to není správné řešení mého problému ale momentálně je to řešení funkční.

Každopádně díky za tento web!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pro ohraničení bloků kódu prosím používejte tlačítko VB Code, aby se kód obarvil.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback