php - 在标签中搜索单词(BRL)并输出该标签的全部内容
问题描述
xml 文件中有几个标签。如何找到包含“BRL”内容的标签?
我试过了
$usd_brazilRate = $usdXML->item[89]->title;<br>
$usd_brazilDate = $usdXML->item[89]->pubDate;<br>
但项目编号(位置)总是改变
裁剪的 xml 内容示例:
<channel>
<item>
<title>1 USD = 64.78833120 RUB</title>
<link>http://www.floatrates.com/usd/rub/</link>
<description>1 U.S. Dollar = 64.78833120 Russian Rouble</description>
<pubDate>Thu, 2 May 2019 12:00:02 GMT</pubDate>
<baseCurrency>USD</baseCurrency>
<baseName>U.S. Dollar</baseName>
<targetCurrency>RUB</targetCurrency>
<targetName>Russian Rouble</targetName>
<exchangeRate>64.78833120</exchangeRate>
<inverseRate>0.01543488</inverseRate>
<inverseDescription>1 Russian Rouble = 0.01543488 U.S. Dollar</inverseDescription>
</item>
<item>
<title>1 USD = 3.92245587 BRL</title>
<link>http://www.floatrates.com/usd/brl/</link>
<description>1 U.S. Dollar = 3.92245587 Brazilian Real</description>
<pubDate>Thu, 2 May 2019 12:00:02 GMT</pubDate>
<baseCurrency>USD</baseCurrency>
<baseName>U.S. Dollar</baseName>
<targetCurrency>BRL</targetCurrency>
<targetName>Brazilian Real</targetName>
<exchangeRate>3.92245587</exchangeRate>
<inverseRate>0.25494232</inverseRate>
<inverseDescription>1 Brazilian Real = 0.25494232 U.S. Dollar</inverseDescription>
</item>
<item>
<title>1 USD = 0.76733706 GIP</title>
<link>http://www.floatrates.com/usd/gip/</link>
<description>1 U.S. Dollar = 0.76733706 Gibraltar pound</description>
<pubDate>Thu, 2 May 2019 12:00:02 GMT</pubDate>
<baseCurrency>USD</baseCurrency>
<baseName>U.S. Dollar</baseName>
<targetCurrency>GIP</targetCurrency>
<targetName>Gibraltar pound</targetName>
<exchangeRate>0.76733706</exchangeRate>
<inverseRate>1.30320826</inverseRate>
<inverseDescription>1 Gibraltar pound = 1.30320826 U.S. Dollar</inverseDescription>
</item>
</channel>
$usdXML = simplexml_load_file("http://www.floatrates.com/daily/usd.xml") or die("Failed to load");
$usd_brazilRate = $usdXML->item->title;
$usd_brazilDate = $usdXML->item->pubDate;
输出
1 美元 = 3.92245587 BRL
格林威治标准时间 2019 年 5 月 2 日星期四 12:00:02
解决方案
您可以使用 XPath:
$brazil = $usdXML->xpath('/channel/item[targetCurrency="BRL"]');
print($brazil[0]->description . "\n");
print($brazil[0]->pubDate . "\n");
推荐阅读
- java - MS 最新版本的 JDBC 驱动程序正在使用(已弃用)ADAL 库。MSAL 的计划是什么?
- angular - 值更改时处理禁用/启用表单
- javascript - Vue.js - 在计算中使用本地方法是不好的做法吗?
- docker - ROS的Docker镜像无法使用?
- azure - 从 Postman 调用时,使用 Azure Active Directory 中的证书进行签名并返回访问令牌
- java - 将@ManyToMany 关系映射到 JPA 和 Hibernate 的最有效方法是什么?
- matplotlib - xticks 标签不会显示在 Julia Plots 中(使用 pyplot 后端)
- javascript - 在数组上均匀分布布尔值(Javascript)
- grails - Grails - DataTables 插件不再存在?
- flutter - 在 Flutter 中获取当前位置时显示圆形指示器?