php和xml:查找xml节点,然后在php中使用其值
我的问题是找不到在XML文档中查找节点的方法 就是这样(php和xml:查找xml节点,然后在php中使用其值,php,xml,xpath,nodes,Php,Xml,Xpath,Nodes,我的问题是找不到在XML文档中查找节点的方法 就是这样(users.xml): 10 用户1 22 用户2 13 用户3 在$\u会话['username']中,我拥有当前登录用户的用户名。我想使用xpath或其他方法将已登录用户的id(假设User2已登录)分配给变量$userID。有人能帮我吗,因为到目前为止我得到的都是错误 提前谢谢 我不知道这是否有助于您阅读nodes childes的内容,但“是意大利语: 编辑从链接中提取要点: 例如,如果您有以下XML文件books.XML(书
users.xml
):
10
用户1
22
用户2
13
用户3
在$\u会话['username']
中,我拥有当前登录用户的用户名。我想使用xpath
或其他方法将已登录用户的id(假设User2已登录)分配给变量$userID
。有人能帮我吗,因为到目前为止我得到的都是错误
提前谢谢 我不知道这是否有助于您阅读nodes childes的内容,但“是意大利语: 编辑从链接中提取要点: 例如,如果您有以下XML文件
books.XML
(书籍列表):
神曲
但丁·阿利吉耶里
我是Promessi Sposi
亚历山德罗·曼佐尼
马拉沃格利亚岛
维尔加
正如你所看到的,这是一个书籍列表,每本书都有标题和作者
使用Xpath方法,我们可以使用Xpath语言(W3C标准)在XML文档中搜索。例如,要访问id为2的书籍:
<?php
$xml=simplexml_load_file("books.xml");
$arr = $xml->xpath("/books/book[@id=2]");
//array that contains the information relating to the book with id=2
print_r($arr);
?>
xpath(“/books/book[@id=2]”);
//数组,该数组包含与id为2的书籍相关的信息
印刷费($arr);
?>
在上面的链接中还有更多的例子——希望通过这段翻译,您能够理解这里给出的其他代码示例。使用DOMXpath::evaluate()方法
获取用户
元素:
/users/user
仅使用特定的用户名
子元素:
/users/user[username=“User2”]
找到的用户的id
子元素:
/users/user[username=“User2”]/Id
将第一个找到的id
元素强制转换为字符串
string(/users/user[username=“User2”]/Id)
我用意大利语发布了一个链接,我知道这个问题的答案是‘谷歌翻译,我不明白这个短语“顺便说一句,那个网站正在播放一个非常完整的视频’?谢谢,你觉得你的回答没那么有用吗?现在我要做一个完整的谷歌翻译,我的意大利语真的低于任何可以接受的水平。如果你只是简单地剪切粘贴并翻译你答案中的相关部分,你就能帮上忙。这使你的答案对未来的访问者直接有用。这不是我们应该在这里努力的吗?(该网站播放了一段我无法快速摆脱的视频,这让我有点恼火,仅此而已)什么样的错误?如果你把它加到你的问题中,它会有帮助。
<?xml version='1.0' ?>
<books>
<book id="1">
<title>La Divina Commedia</title>
<author>Dante Alighieri</author>
</book>
<book id="2">
<title>I Promessi Sposi</title>
<author>Alessandro Manzoni</author>
</book>
<book id="3">
<title>I Malavoglia</title>
<author>Giovanni Verga</author>
</book>
</libri>
<?php
$xml=simplexml_load_file("books.xml");
$arr = $xml->xpath("/books/book[@id=2]");
//array that contains the information relating to the book with id=2
print_r($arr);
?>
$xml = <<<'XML'
<users>
<user>
<id>10</id>
<username>User1</username>
</user>
<user>
<id>22</id>
<username>User2</username>
</user>
<user>
<id>13</id>
<username>User3</username>
</user>
</users>
XML;
$dom = new DOMDocument();
$dom->loadXml($xml);
$xpath = new DOMXpath($dom);
$userName = 'User2';
$userId = $xpath->evaluate('string(/users/user[username = "'.$userName.'"]/id)');
var_dump($userId);
string(2) "22"