php - 如何解析这些 XML 数据并获得准确的结果?
问题描述
强文本我有以下 XML 数据:
<?xml version="1.0" encoding="UTF-8"?>
<MediaContainer friendlyName="MyContainer" identifier="container2" machineIdentifier="sadas6d54a6s54d65a4sd" totalSize="82" size="82">
<User id="123456" title="someEmail@yahoo.com" username="someEmail@yahoo.com" email="someEmail@yahoo.com" recommendationsPlaylistId="" thumb="nothing" protected="0" home="0" allowTuners="0" allowSync="0" allowCameraUpload="0" allowChannels="0" allowSubtitleAdmin="0" filterAll="" filterMovies="" filterMusic="" filterPhotos="" filterTelevision="" restricted="0">
<Server id="000001" serverId="000001" machineIdentifier="sadas6d54a6s54d65a4sd" name="none" lastSeenAt="1596238173" numLibraries="5" allLibraries="0" owned="1" pending="0"/>
</User>
<User id="654321" title="myUser" username="myUser" email="anotherEmail@gmail.com" recommendationsPlaylistId="" thumb="nothing" protected="0" home="0" allowTuners="0" allowSync="0" allowCameraUpload="0" allowChannels="0" allowSubtitleAdmin="0" filterAll="" filterMovies="" filterMusic="" filterPhotos="" filterTelevision="" restricted="0">
<Server id="000001" serverId="000001" machineIdentifier="sadas6d54a6s54d65a4sd" name="none" lastSeenAt="1596238173" numLibraries="5" allLibraries="0" owned="1" pending="0"/>
</User>
</MediaContainer>
如果我想通过搜索用户的电子邮件来获取用户的 ID,我将如何解析它?
例如,如果我要解析这些数据,然后搜索电子邮件someEmail@yahoo.com,我会得到 ID 123456。如果我搜索anotherEmail@gmail.com我会得到 ID 654321。
以下代码仅将所有内容放入一个数组中,但我不确定如何使用电子邮件在该数组中搜索并获取该唯一 ID:
$xml = simplexml_load_string($myXML, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
var_dump($array);
解决方案
User
使用索引从解析数组中获取用户数据。然后,您可以遍历该数组以形成一个新数组,该数组将根据相应的电子邮件 ID 存储所需的 ID。
$xml = simplexml_load_string($myXML, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$array = json_decode($json,TRUE);
$users = $array['User'];
foreach ($users as $user) {
$id[$user['@attributes']['email']] = $user['@attributes']['id'];
}
echo $id['someEmail@yahoo.com'];
推荐阅读
- php - Codeigniter:“where 子句”中的未知列“stud.id”
- microsoft-graph-api - Microsoft graph 团队,403 在聊天中发布消息
- java - 解压后的 xlsx 文件和 apache poi 的内容
- javascript - DevTools 无法加载 sourceMap 文件,HTTP 错误:状态码 403,net:: ERR_HTTP_RESPONSE_CODE_FAILURE
- c - 使用 char 指针读取 GCC 中的寄存器
- java - Java在main方法中打印递归
- firebase - 在没有获取完整文档数据的情况下检查 Firestore 上是否存在文档
- python-3.x - Python loop ascending values from list of dictionary
- python - 如何解决这个 Flask 应用程序 run.py 错误
- java - Java - 按属性对对象数组进行分组和排序