Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > php函数/类库

php实现的XML操作(读取)封装类完整实例

来源:中文源码网    浏览:145 次    日期:2024-05-15 13:38:17
【下载文档:  php实现的XML操作(读取)封装类完整实例.txt 】


php实现的XML操作(读取)封装类完整实例
本文实例讲述了php实现的XML操作(读取)封装类。分享给大家供大家参考,具体如下:







Normal|DR

Wondershare Vedio Convertor

Wondershare

Customize|Affiliate

143724583

0|1









11642

1|0

1|0

Jump|Hide|Disable

1|0

1|0






















































































封装了下读取xml操作类:
/**
* xml操作基类
*/
class XmlBase {
public function __construct() {
}
/**
* 加载xml
* @param string $xml xml路径或xml字符串
* @param bool $isXmlStr 是否是xml字符串
*/
protected function _loadXml($xml, $isXmlStr = FALSE) {
$xmlObj = new DOMDocument();
if ($isXmlStr) {
$xmlObj->loadXML($xmlNewStr);
} else {
$xmlObj->load($xml);
}
return $xmlObj;
}
/**
* 获取某个标签节点
* @param $parentnode 父节点
* @param $tagName 标签名 // 不区分大小写
* @return node 节点对象
*/
protected function _getNode($parentNode, $tagName) {
$childNodes = $this->_getNodes($parentNode);
foreach ($childNodes as $node) {
$nodeName = strtolower(trim($node->nodeName));
$tagName = strtolower(trim($tagName));
if ($nodeName == $tagName) {
return $node;
}
}
return NULL;
}
/**
* 获取xml子节点
* @param $parentNode 父节点
* @param $tagName 子节点标签 // 不区分大小写
*/
protected function _getNodes($parentNode, $tagName = '') {
$nodes = array();
if ($tagName) {
$nodes = $this->_getSpecialNodes($parentNode, $tagName);
} else {
$nodes = $this->_getAllNodes($parentNode);
}
return $nodes;
}
/**
* 获取所有的节点
* @param $parentNode 父节点
*/
protected function _getAllNodes($parentNode) {
$nodes = array();
foreach ($parentNode->childNodes as $node) {
if ($node->nodeType == 1) {
$nodes[] = $node;
}
}
return $nodes;
}
/**
* 获取指定标签的节点
* @param $parentNode 父节点
* @param $tagName 节点名称
*/
protected function _getSpecialNodes($parentNode, $tagName) {
$nodes = array();
$tagName = strtolower(trim($tagName));
foreach ($parentNode->childNodes as $node) {
$nodeName = strtolower(trim($node->nodeName));
if ($node->nodeType == 1 && $nodeName == $tagName) {
$nodes[] = $node;
}
}
return $nodes;
}
/**
* 获取节点属性值
*
* @param $node 节点对象
* @param $attrName 节点名字 // 不区分大小写
*/
protected function _getAttr($node, $attrName) {
$attrName = strtolower($attrName);
foreach ($node->attributes as $attr) {
$nodeName = strtolower($attr->nodeName);
//$nodeValue = strtolower($attr->nodeValue);
$nodeType = strtolower($attr->nodeType);
if ($nodeType == 2 && $nodeName == $attrName) {
unset($attrName, $nodeName, $nodeType);
return $attr->nodeValue;
}
}
return '';
}
}
?>
PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:
在线XML/JSON互相转换工具:
http://tools.zwyuanma.com/code/xmljson
在线格式化XML/在线压缩XML:
http://tools.zwyuanma.com/code/xmlformat
XML在线压缩/格式化工具:
http://tools.zwyuanma.com/code/xml_format_compress
XML代码在线格式化美化工具:
http://tools.zwyuanma.com/code/xmlcodeformat
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。

相关内容