PHP解析XML

1.PHP简单操作XML:

//读取XMl;
$doc=new DOMDocument();
$doc->load("demo.xml");
//获取节点列表方法:
$nodelist1=$doc->getElementById(string $id);
$nodelist2=$doc->getElementByTagName(String $name );
//生成XML文档:
$doc=new DomDocument('1.0','utf-8');//设置版本号和字符编码
$doc->formatOutput=ture;//格式化输出
//创建元素节点
$doc->createElement(string $name[,string $value]);
//创建属性
$doc->createAttribute(string $name);

2.递归遍历XML

noteType的值
节点
1元素节点
2属性节点
3值节点
7根节点

//值几点的名称为#text,根节点的名称为#document;

<?PHP
//递归xml文档
function getChilds($node){
    echo "<ul>";
    if($node->nodeType==3){
        echo "<li>".$node->nodeValue."</li>";//取出节点的值
    }else{
        echo "<li>".$node->nodeName."</li>";//取出元素节点的名称
        if($node->attributes->length>0){
            foreach($node->attribute as $attr){
                echo "<li>".$attr->value."</li>";//取出节点的值
            }   
        }
        foreach($node->childNodes as $child){
            getChilds($child);//递归
        }
    }
    echo "</ul>";
}
$doc=new DOMDocument();
$doc->preserveWhiteSpace=false;//导入XML时除去空格;
$doc->loda("demo.xml");
$root=$doc->documentElement;//获取最顶层的元素
getChilds($root);

2.XPath应用

$doc=new DOMDocument();
$doc->preserveWhiteSpace=false;
$doc->load("demo.xml");
$xpath=new DOMXPath($doc);
$query="//";//XPath查询语法
$result=$xpath->query($query);//获得结果

3.simpleXML
PHP5以上,simpleXML可以把XML的节点转化成对象和数组操作。

//转化XML
$xml=file_get_contents("demo.xml");
$simple=new SimpleXMLELement($xml);
//然后通过操作对象及数组方法进行操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值