我想获取属性的内容xsi:架构位置。它与 php 中的 getElementsByTagName 完美配合(以及之后的 foreach),但它很丑,对吗?
如何通过简单的 Xpath 查询获得相同的内容?
这是 xml 内容的简短示例:
<?xml version="1.0" encoding="utf-8"?>
<gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0" creator="blabla" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.groundspeak.com/cache/1/0/1 http://www.groundspeak.com/cache/1/0/1/cache.xsd" xmlns="http://www.topografix.com/GPX/1/0">
...
</gpx>
Thanks!
通常,您需要首先向 XPath 库注册要使用的名称空间。然后,您可以通过包含名称空间前缀和名称来查询属性。
因此,假设您正在使用 DOMXPath,您可能会注册以下命名空间:
$xpath = new DOMXPath($doc);
$xpath->registerNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance");
$xpath->registerNamespace("gpx", "http://www.topografix.com/GPX/1/0");
然后您可以使用如下方式查询 schemaLocation 属性:
$xpath->query("/gpx:gpx/@xsi:schemaLocation",$doc);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)