首页 > Web开发 > 详细

php的DOMDocument 如何判断xml是否存在某节点

时间:2015-12-23 00:27:49      阅读:328      评论:0      收藏:0      [点我收藏+]

在做xml解释时,需要判断是否存在某个节点,查了手册函数,硬是没有发现那个函数有这个功能(如果你知道的话,请留言,博主感激涕零)。

下面,就说下博主,经过N多博文,论坛查阅后,得到的一种方法(看到的博文,都只是寥寥几句,没有细说,没有示例代码,因此博主查了好久)。

首先,博主明确告诉读者,在php手册函数里,博主是真的没有发现有这个功能的函数(可能博主英文水平有限,DOMDocument里函数都是英文的)!

因此,在这里,博主是用DOMDocument的xpath来解析的。

看代码:

1 $this->dom = new DOMDocument(‘1.0‘, ‘UTF-8‘);
2 $this->dom->loadXML($file);
3 
4 $xpath = new DOMXPath($this->dom);
5 $sql = ‘/youdao-fanyi/basic‘;
6 $tmp = $xpath->query($sql);

这里是查询<basic>节点(如果看不懂xpath的话,先去了解一下),如果没有<basic>节点,则返回null,这样我们就可以做判断了!!!

下面附上我的xml代码:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <youdao-fanyi>
 3     <errorCode>0</errorCode>
 4     <query><![CDATA[国家]]></query>
 5     <!-- 有道翻译 -->
 6     <translation>
 7             <paragraph><![CDATA[countries]]></paragraph>
 8         </translation>
 9     <!-- 有道词典-基本词典 -->
10     <basic>
11             <!-- 音标 -->
12         <phonetic><![CDATA[guó jiā]]></phonetic>
13                     <!-- 基本释义 -->
14         <explains>
15                     <ex><![CDATA[state]]></ex>
16                     <ex><![CDATA[nation]]></ex>
17                     <ex><![CDATA[country]]></ex>
18                     <ex><![CDATA[nationality]]></ex>
19                 </explains>
20     </basic>
21     <!-- 有道词典-网络释义 -->
22     <web>
23             <explain>
24             <key><![CDATA[国家]]></key>
25             <value>
26                             <ex><![CDATA[Country]]></ex>
27                             <ex><![CDATA[Nation]]></ex>
28                             <ex><![CDATA[state]]></ex>
29                         </value>
30         </explain>
31             <explain>
32             <key><![CDATA[发展中国家]]></key>
33             <value>
34                             <ex><![CDATA[developing country]]></ex>
35                             <ex><![CDATA[developing countries]]></ex>
36                             <ex><![CDATA[DMCs developing member countries]]></ex>
37                         </value>
38         </explain>
39             <explain>
40             <key><![CDATA[国家队]]></key>
41             <value>
42                             <ex><![CDATA[National team]]></ex>
43                             <ex><![CDATA[nation team]]></ex>
44                             <ex><![CDATA[national sports team]]></ex>
45                         </value>
46         </explain>
47         </web>
48 </youdao-fanyi>

 

php的DOMDocument 如何判断xml是否存在某节点

原文:http://www.cnblogs.com/codcodog/p/5068401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!