📅  最后修改于: 2023-12-03 15:03:36.904000             🧑  作者: Mango
DOMNode::lookupPrefix()
函数用于获取给定命名空间URI的前缀。如果未定义任何与该命名空间关联的前缀,则该函数将返回空字符串。
public function DOMNode::lookupPrefix ( string $namespaceURI ) : string|false
namespaceURI
: 必需。要查找的命名空间URI。返回预定义命名空间前缀或 null(如果没有为该命名空间定义前缀或URI未正确解析)。
此方法可能会返回 false,但这是由于在该节点上的API完全没有实现而导致的,而不是由于找不到前缀。
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<ns:root xmlns:ns="http://www.example.com/ns1" xmlns:foo="http://www.example.com/ns2">
<foo:element>
<ns:name>John</ns:name>
<foo:address>123 Main Street</foo:address>
</foo:element>
</ns:root>
XML;
$doc = new DomDocument();
$doc->loadXML($xml);
$root = $doc->documentElement;
$prefix = $root->lookupPrefix("http://www.example.com/ns1");
echo $prefix; // 输出 "ns"
$xml = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<ns:root xmlns:ns="http://www.example.com/ns1">
<foo:element>
<ns:name>John</ns:name>
</foo:element>
</ns:root>
XML;
$doc = new DomDocument();
$doc->loadXML($xml);
$root = $doc->documentElement;
$prefix = $root->lookupPrefix("http://www.example.com/ns2");
var_dump($prefix); // 输出 null
DOMNode::lookupPrefix()
方法只能在具有命名空间支持的 XML 文档中使用,否则将引发错误。DOMElement
)和 DOM 文档节点(DOMDocument
)对象(例如,不能用于 DOM 文本节点(DOMText
)对象)。