0

私は XPath を使用するのが初めてで、助けていただければ幸いです。ログイン ページの一部であるテキスト ボックスに入力された変数を使用して、以下のような XML ファイルを検索したいと考えています。この変数は、正しいユーザーを検証するために使用されます。これを行うための正しい表現を考え出すのに苦労しています。以下は、私が使用しているサンプル Xml ファイルの例です。私は Visual Basic でプログラミングしています。

<Log>
    <customer>
        <customerid>12345</customerid>
        <password>Pass1</password>
        <login>00001</login>
        <image>Ducati1.jpg</image>
        <fname>Julie</fname>
        <lname>James</lname>
    </customer>
    <customer>
        <customerid>23456</customerid>
        <password>Pass2</password>
        <login>00002</login>
        <image>Ducati2.jpg</image>
        <fname>Bob</fname>
        <lname>Barnett</lname>
    </customer>
    <customer>
        <customerid>345678</customerid>
        <password>Pass3</password>
        <login>00003</login>
        <image>Ducati3.jpg</image>
        <fname>Callum</fname>
        <lname>Claw</lname>
    </customer>
</Log>

私が試したコードは次のとおりです: Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click

    Dim pass As String
    Dim user As String

    pass = lblPassword.Text
    user = lbluser.Text


    Dim doc As New XmlDocument
    Dim nodes As XmlNodeList


    doc.Load(Server.MapPath("App_Data\Customer.xml"))
    nodes = doc.SelectNodes("//customer[password = "pass")

    For Each node In nodes

        TextBox3.Text = node.SelectSingleNode("customerid").InnerText

    Next

End Sub

クラス終了

4

2 に答える 2

0

あなたが vbs や vba を使っている言語はわかりませんが、この xpath を試すことができると思います

 //customer[descendant::password[text()= 'Pass2']]

ここでテストhttp://www.xpathtester.com/obj/bbcf034f-1b3f-4a23-8e99-8f2b57044b46

ここに置くときは、一重引用符と二重引用符に注意してください doc.SelectNodes()

于 2013-10-12T12:37:42.010 に答える
0

次のXPATH 式を試してcustomerください。passwordcustomerid

//customer[password='pass2']/customerid

複数のユーザーが同じ を持つことができると思いますpassword。以下で説明するように、をcustomerid使用することをお勧めします。login

 //customer[login='00002']/customerid
于 2013-10-12T12:58:17.257 に答える