phpでxpathを使用すると、結果の数が間違っています

初心者

XPATHとPHPは初めてです。PHPのXPATHを使用して、ユーザー検証を実現しようとしています。私のデータはxmlファイルにあります

<?xml version="1.0" encoding="UTF-8"?>

<customers>
    <customer>
        <id>1</id>
        <fName>sa</fName>
        <lastName>aa</lastName>
        <email>[email protected]</email>
        <password>a</password>
    </customer> 
    <customer>
        <id>2</id>
        <fName>bb</fName>
        <lastName>cc</lastName>
        <email>[email protected]</email>
        <password>b</password>
    </customer>
</customers>

私のphpコードスニペットは

if(file_exists('customer.xml'))
        {
            $doc = new DOMDocument();
            $doc->load('customer.xml');

            $xpathvar = new Domxpath($doc);

            //check if user exists and password matches
            $queryResult = $xpathvar->query("customers/customer[email= '".$userEmail."' and password= '".$password."']");

            var_dump($queryResult);
            if(count($queryResult)== 1)
            {
                //successful login
                echo "great";
            }
            else
            {
                echo "Invalid email address or password";
            }
        }

どの入力を提供しても、count($queryResult)1を返します。正しいマッチングが行われない理由がわかりません。

私が提供した場合$userEmail="[email protected]"、次の出力が得られます$password="a"var_dump($queryResult);

object(DOMNodeList)[3]
  public 'length' => int 0
スプラッシュ58

$ queryResultはDOMNodeListオブジェクトであり、プロパティの長さは見つかったノードの量です。を使用したテスト結果:

if ($queryResult->length == 1)

そして、ルート要素が表示されないため、Xpathを変更します。

customer[email= '".$userEmail."' and password= '".$password."']

デモを見る

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonを使用したGoogleScrapeの結果の数が間違っています

分類Dev

eulerProjectの関数の結果が間違っています

分類Dev

usort関数の結果が間違っています

分類Dev

setIntervalによる関数の結果が間違っています

分類Dev

合計を使用して関数をプロットすると、間違った結果が生成されます

分類Dev

爆発するテキストとループ php の結果が間違っています

分類Dev

Valgrindを使用したlongdoubleのstd :: fpclassifyの結果が間違っています

分類Dev

PyMySQLで列の順序が間違っている結果を選択する

分類Dev

jqueryを使用してボタンの高さを特定すると、間違った結果が得られます

分類Dev

MySQLでUtf-8を使用して選択すると、間違った結果が返されます

分類Dev

PHPでの標準偏差の結果が間違っている

分類Dev

Oracleの "order by"句は、結果を間違った順序で返すか、結果が欠落しています

分類Dev

MySQLの結合が間違っています結果

分類Dev

日付範囲でグーグルをこすり取ろうとしている結果の数が間違っている

分類Dev

正規表現で変数を使用するのが間違っています

分類Dev

PHPのarray_count_valuesの結果が間違っています

分類Dev

hash_djb2 PHPの結果が間違っていますか?

分類Dev

XPATHは結果を出しません。名前空間が間違っていますか?

分類Dev

CONCATを使用するとphpMyAdminが間違った結果になります

分類Dev

MDX結果の合計が間違っています

分類Dev

ElasticSearch結果のスコアが間違っています

分類Dev

dimplejs散布図の結果が間違っています

分類Dev

Application.Sumの結果が間違っています

分類Dev

NSDateFormatter dateFromStringの結果が間違っていますか?

分類Dev

!dumpheapの結果が間違っています

分類Dev

Python math.arctan()の結果が間違っていますか?

分類Dev

ElasticsearchMatchQueryが間違った結果を返しています

分類Dev

GETDATE()をSQL Serverに格納されているGETDATE()と比較した結果が間違っています

分類Dev

Scalaではn個の数値の合計の結果が間違っています

Related 関連記事

  1. 1

    Pythonを使用したGoogleScrapeの結果の数が間違っています

  2. 2

    eulerProjectの関数の結果が間違っています

  3. 3

    usort関数の結果が間違っています

  4. 4

    setIntervalによる関数の結果が間違っています

  5. 5

    合計を使用して関数をプロットすると、間違った結果が生成されます

  6. 6

    爆発するテキストとループ php の結果が間違っています

  7. 7

    Valgrindを使用したlongdoubleのstd :: fpclassifyの結果が間違っています

  8. 8

    PyMySQLで列の順序が間違っている結果を選択する

  9. 9

    jqueryを使用してボタンの高さを特定すると、間違った結果が得られます

  10. 10

    MySQLでUtf-8を使用して選択すると、間違った結果が返されます

  11. 11

    PHPでの標準偏差の結果が間違っている

  12. 12

    Oracleの "order by"句は、結果を間違った順序で返すか、結果が欠落しています

  13. 13

    MySQLの結合が間違っています結果

  14. 14

    日付範囲でグーグルをこすり取ろうとしている結果の数が間違っている

  15. 15

    正規表現で変数を使用するのが間違っています

  16. 16

    PHPのarray_count_valuesの結果が間違っています

  17. 17

    hash_djb2 PHPの結果が間違っていますか?

  18. 18

    XPATHは結果を出しません。名前空間が間違っていますか?

  19. 19

    CONCATを使用するとphpMyAdminが間違った結果になります

  20. 20

    MDX結果の合計が間違っています

  21. 21

    ElasticSearch結果のスコアが間違っています

  22. 22

    dimplejs散布図の結果が間違っています

  23. 23

    Application.Sumの結果が間違っています

  24. 24

    NSDateFormatter dateFromStringの結果が間違っていますか?

  25. 25

    !dumpheapの結果が間違っています

  26. 26

    Python math.arctan()の結果が間違っていますか?

  27. 27

    ElasticsearchMatchQueryが間違った結果を返しています

  28. 28

    GETDATE()をSQL Serverに格納されているGETDATE()と比較した結果が間違っています

  29. 29

    Scalaではn個の数値の合計の結果が間違っています

ホットタグ

アーカイブ