gpt4 book ai didi

php - 如何使用 PHP/XPath/DOM 查询 namespace

转载 作者:可可西里 更新时间:2023-10-31 23:35:17 26 4
gpt4 key购买 nike

我正在尝试查询使用命名空间的 XML 文档。我在没有命名空间的情况下使用 xpath 取得了成功,但没有命名空间的结果。这是我正在尝试的一个基本示例。我稍微压缩了一下,所以我的示例中可能存在一些小问题,可能会影响我的实际问题。

示例 XML:

<?xml version="1.0"?>
<sf:page>
<sf:section>
<sf:layout>
<sf:p>My Content</sf:p>
</sf:layout>
</sf:section>
</sf:page>

示例 PHP 代码:

<?php
$path = "index.xml";

$content = file_get_contents($path);

$dom = new DOMDocument($content);

$xpath = new DOMXPath($dom);
$xpath->registerNamespace('sf', "http://developer.apple.com/namespaces/sf");

$p = $xpath->query("//sf:p", $dom);

我的结果是“p”是一个“DOMNodeList Object ()”,它的长度是 0。任何帮助将不胜感激。

最佳答案

DOMDocument 构造函数不获取内容,而是获取版本和编码。而不是:

$path = "index.xml";
$content = file_get_contents($path);
$dom = new DOMDocument($content);

试试这个:

$path = "index.xml";
$doc = new DOMDocument();
$doc->load($path);

关于php - 如何使用 PHP/XPath/DOM 查询 namespace ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com