目的 :
创建一个方法来检索具有特定“id”的嵌套元素。
我尝试过的:
- 通过 DOMXpath 类查询方法检索带有 x 路径表达式的代码。每次返回一个空节点列表
- '/行[@id=' 。$id 。']'
- '//表/行[@id=' . $id 。']'
- '/ / [@id=' . $id 。']'
- 尝试使用 DOMDocument::getElementById 并在实例化 DOMDocument 类后立即设置 DOMDocument::$validateOnParse 。这也返回一个空节点列表。
示例 XML:
<?xml version="1.0" encoding="UTF-8"?>
<table>
<row id="1">
<job>construction</job>
<age>34</age>
<name>bob</name>
</row>
<row id="2">
<job>construction</job>
<age>34</age>
<name>bob</name>
</row>
<row id="3">
<job>construction</job>
<age>34</age>
<name>bob</name>
</row>
<row id="4">
<job>construction</job>
<age>34</age>
<name>bob</name>
</row>
</table>
php代码:
Class SimpleORM{
...
public function find($id)
{
settype($id, "int");
$xpath = new DOMXPath($this->_dom);
$expression = '/row[@id=' . $id . ']';
return $xpath->query($expression);
}
}
完整的 PHP 代码可以在这里阅读 -> https://github.com/Danoon/SimpleORM/blob/master/SimpleORM.php
问题 :
为什么没有返回正确的元素/节点,我该如何实现?
调用查找函数
$users = new SimpleORM("users");
$result = $users->find(1);