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);
//然后通过操作对象及数组方法进行操作。