php的DOMDocument 如何判断xml是否存在某节点
在做xml解释时,需要判断是否存在某个节点,查了手册函数,硬是没有发现那个函数有这个功能(如果你知道的话,请留言,博主感激涕零)。
下面,就说下博主,经过N多博文,论坛查阅后,得到的一种方法(看到的博文,都只是寥寥几句,没有细说,没有示例代码,因此博主查了好久)。
首先,博主明确告诉读者,在php手册函数里,博主是真的没有发现有这个功能的函数(可能博主英文水平有限,DOMDocument里函数都是英文的)!
因此,在这里,博主是用DOMDocument的xpath来解析的。
看代码:
$this->dom = new DOMDocument('1.0', 'UTF-8');
$this->dom->loadXML($file);
$xpath = new DOMXPath($this->dom);
$sql = '/youdao-fanyi/basic';
$tmp = $xpath->query($sql);
这里是查询<basic>节点(如果看不懂xpath的话,先去了解一下),如果没有<basic>节点,则返回null,这样我们就可以做判断了!!!
下面附上我的xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<youdao-fanyi>
<errorCode>0</errorCode>
<query><![CDATA[国家]]></query>
<!-- 有道翻译 -->
<translation>
<paragraph><![CDATA[countries]]></paragraph>
</translation>
<!-- 有道词典-基本词典 -->
<basic>
<!-- 音标 -->
<phonetic><![CDATA[guó jiā]]></phonetic>
<!-- 基本释义 -->
<explains>
<ex><![CDATA[state]]></ex>
<ex><![CDATA[nation]]></ex>
<ex><![CDATA[country]]></ex>
<ex><![CDATA[nationality]]></ex>
</explains>
</basic>
<!-- 有道词典-网络释义 -->
<web>
<explain>
<key><![CDATA[国家]]></key>
<value>
<ex><![CDATA[Country]]></ex>
<ex><![CDATA[Nation]]></ex>
<ex><![CDATA[state]]></ex>
</value>
</explain>
<explain>
<key><![CDATA[发展中国家]]></key>
<value>
<ex><![CDATA[developing country]]></ex>
<ex><![CDATA[developing countries]]></ex>
<ex><![CDATA[DMCs developing member countries]]></ex>
</value>
</explain>
<explain>
<key><![CDATA[国家队]]></key>
<value>
<ex><![CDATA[National team]]></ex>
<ex><![CDATA[nation team]]></ex>
<ex><![CDATA[national sports team]]></ex>
</value>
</explain>
</web>
</youdao-fanyi>
php的DOMDocument 如何判断xml是否存在某节点的更多相关文章
- php 判断 xml 里是否存在某个节点
参考网址:http://blog.csdn.net/crazyboy2005/article/details/6114454 DOMDocument中,怎样判断某节点是否存在呢? /* $xml-&g ...
- [ActionScript 3.0] 判断XML属性是否存在
在as3中判断xml节点是否存在以及判断xml某节点是否存在某属性可用下面方法: if(xml.hasOwnProperty("frameRate")){ trace(" ...
- C#程序中:如何修改xml文件中的节点(数据)
要想在web等程序中实现动态的数据内容给新(如网页中的Flash),不会更新xml文件中的节点(数据)是远远不够的,今天在这里说一个简单的xml文件的更新,方法比较基础,很适合初学者看的,保证一看就懂 ...
- 答:SQLServer DBA 三十问之一: char、varchar、nvarchar之间的区别(包括用途和空间占用);xml类型查找某个节点的数据有哪些方法,哪个效率高;使用存储 过程和使用T-SQL查询数据有啥不一样;
http://www.cnblogs.com/fygh/archive/2011/10/18/2216166.html 1. char.varchar.nvarchar之间的区别(包括用途和空间占用) ...
- (转载)读取xml中的指定节点的值
/// <summary> /// 读取xml中的指定节点的值 /// </summary> private st ...
- C#程序中:如何删除xml文件中的节点、元素。
C#中动态的清理xml文件中的垃圾信息是程序员必会的哦.这就像数据库一样,不会清理数据怎么可以呢?其实xml文件就可以用作一个小的数据库,存储一些简单的信息.所以,用C#程序实现xml文件的增.删.改 ...
- 读取xml中的指定节点的值
/// <summary> /// 读取xml中的指定节点的值 /// </summary> private string ReadXmlNode(string filenam ...
- 用dom4j修改xml(增加修改节点)
用dom4j修改xml(增加修改节点) 博客分类: Java XMLJavaMyeclipseServlet 使用dom4j修改解析xml,xml文件的位置是配置在xml.properties文件中 ...
- xml文件的根节点layout_width或者layout_height设置无效果的原因分析
在android开发中相信大家对ListView.GridView等组建都非常熟悉,在使用它们的时候须要自己配置相关的Adapter,而且配置现骨干的xml文件作为ListView等组建的子View, ...
随机推荐
- 整理SQL
由4张简单的不能再简单的表,演变出50道SQL 表结构: 表Student (S#,Sname,Sage,Ssex) 学生表 S# student_no Sage student_age Ss ...
- 轻松实现HTML5时钟(分享下自己对canvas的理解,原来没你想像的那么难哦)
Hey,guys! 让我们一起用HTML5实现一下简易时钟吧! 接触canvas时, 我突然有一种非常熟悉的感觉------canvas的部分的功能其实和Photoshop中的 钢笔工具 是一样的.所 ...
- postgresql配置的一些问题
ubuntu通过软件中心安装后,配置文件位于如下目录 我用超级用户创建了其它数据库用户,发现是登录不了的,必须还得创建同名的linux用户,甚是麻烦.在配置文件pg_hba.conf中发现了问题. 其 ...
- HDU 4939 Stupid Tower Defense
dp:枚举red,dp前i 个塔中有j 个蓝塔的最大伤害. 机智的地方:dp前i 个塔的时候可以同时处理n-i 个红塔,这样就少了个循环...(枚举红塔的循环) #include <iostre ...
- SMC MCU
Holtek推出e-Banking智能卡读卡器MCU——HT56RU25,继HT56RB27.HT56RB688 USB接口单片机之后,推出全新UART接口单片机.HT56RU25内建ISO7816- ...
- javascript之尺寸,位置,溢出
一.offsetWidth:元素的宽度,包括边框,内容,内边距. 二.offsetHeight:元素的高度,包括边框,内容,内边距. 三.offsetLeft:元素的X坐标(相对于最近已定位的祖先元素 ...
- Silverlight 结合ArcGis 使用inforwindow
原文 http://www.dotblogs.com.tw/justforgood/archive/2012/05/10/72089.aspx 也许有些人不知道什么事inforwindow,简单来说就 ...
- 软件体系结构经典问题——KWIC的分析和解决
KWIC作为一个早年间在ACM的Paper提出的一个问题,被全世界各个大学的软件设计课程奉为课堂讲义或者作业的经典.(From Wiki,FYI,D. L. Parnas uses a KWIC In ...
- GetCurrentDirectory、SetCurrentDirectory和GetModuleFileName
DWORD GetCurrentDirectory( DWORD nBufferLength, // size of directory buffer LPTSTR lpBuffer // ...
- jprofiler安装和配置
转:http://www.cnblogs.com/adolfmc/archive/2013/06/09/3129358.html 注意:安装前先用rpm -q jprofiler查询linux上是否已 ...