使用PHP检查XML文件中是否存在搜索属性



我在这个表格中遇到了几个类似的答案,但不能解决我的确切问题。因此,我在这里发布这个:

我有一个xml文件,如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?>
    <document>
        <user>
            <user_id>0121</user_id>
            <name>Tim</name>
            <file>0121.file</file>
        </user>
        <user>
            <user_id>0178</user_id>
            <name>Henry</name>
            <file>0178.file</file>
        </user>
        <user>
            <user_id>0786</user_id>
            <name>Martin</name>
            <file>0786.file</file>
        </user>
        <user>
            <user_id>1239</user_id>
            <name>Jan</name>
            <file>1239.file</file>
        </user>
    </document>

我要求用户输入他的user_id并发布这个user_id,并对整个xml文件执行检查,以检查输入的user_id是否存在于xml文件中。如果存在,则如果不回显错误消息,则继续执行。有人能把我拉出来吗?

谢谢

编辑答案忘掉我之前的答案吧:P

$user_id = '1239';
$xml = new SimpleXMLElement($xml);
$found = false;
foreach($xml->user AS $user) {
    if ($user->user_id == $user_id) {
        $found = true;
        break;
    }
}
if (!found) echo 'error';

您可以使用DOMDocument与DOMXpath查询,例如:-

$doc = new DOMDocument;
$doc->load(...);
$xpath = new DOMXPath($doc);
$query = '//user/user_id[.="0121"]';
$entries = $xpath->query($query);
if ( $entries->length )
{
  // found
}

最新更新