我有一个XML文档,结构如下:
<produkter>
<produkt>
<forhandler></forhandler>
<produktnavn></produktnavn>
and so on...
</produkt>
</produkter>
我正在提取这样的数据:
$produktnavn = utf8_decode($xmlObject->item($i)->getElementsByTagName('produktnavn')->item(0)->childNodes->item(0)->nodeValue);
现在我正在检查XML文档中是否存在该节点。
例如......如果实际上有一个名为&#34; produktnavn&#34;的节点,我只想进行上述操作。
我正在尝试:
if (isset($xmlObject->item($i)->forhandler)) {
但这似乎不起作用。
我做错了什么?
答案 0 :(得分:1)
您可以将DOMDocument与DOMXPath一起使用,并检查xpath表达式的长度。
例如:
struct Job {
let activityID : String
...
init(dict: [String:String]) {
activityID = dict["ActivityID"] ?? ""
...
}
}
答案 1 :(得分:0)
getElementsByTagName
的结果始终为DOMNodeList
;该类有一个成员length
,描述为:
列表中的节点数。有效子节点索引的范围是0到length - 包括1。
因此,要检查列表中是否至少有一个项目,请检查length
是否为> 0
:
$produktnavn_nodes = $xmlObject->item($i)->getElementsByTagName('produktnavn');
if ( $produktnavn_nodes->length > 0 ) {
$produktnavn = utf8_decode($produktnavn_nodes->item(0)->childNodes->item(0)->nodeValue);
// ... do something with $produktnavn
}