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

时间:2011-11-25 13:39:11

标签: 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文件中。如果存在,那么如果不回显错误消息,我会更进一步。 任何人都可以把我拉出来吗?

谢谢

2 个答案:

答案 0 :(得分:0)

编辑回答 忘记我之前的回答: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';

答案 1 :(得分:0)

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

$doc = new DOMDocument;
$doc->load(...);

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