Home  >  Article  >  Backend Development  >  Example demonstration of DOMElement operation on xml document in php_PHP tutorial

Example demonstration of DOMElement operation on xml document in php_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:12:321083browse

复制代码 代码如下:

//Store your html into $html variable.
$html="

Rakesh Verma


Example
Google
Yahoo

";
$dom = new DOMDocument();
$dom->loadHTML($html);
//Evaluate Anchor tag in HTML
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
//remove and set target attribute
$href->removeAttribute('target');
$href->setAttribute("target", "_blank");
$newURL=$url.".au";
//remove and set href attribute
$href->removeAttribute('href');
$href->setAttribute("href", $newURL);
}
// save html
$html=$dom->saveHTML();
echo $html;
?>

例2
复制代码 代码如下:

/*




<班级>
<学生 number="101">
<名字>孙悟空
<名字>孙行者
<年龄>123
<介绍>

<学生 number="10"2">
<名字>白骨精
<年龄>140
<介绍>介绍内容


*/
$xmldoc = new DOMDocument('1.0', 'UTF-8');
$xmldoc->load('datas.xml');
$itemsNodeList = $xmldoc->getElementsbyTagName('学生');
$itemElement = $itemsNodeList->item(0);//得到第一个完整的学生信息节点
$itemChildsNodeList = $itemElement->getElementsbyTagName('名字');//得到子节点“名字”,也许有多个名字
$itemChildNode = $itemChildsNodeList->item(0);//得到第一个名字节点
echo $itemChildNode->nodeValue;//输出节点值
//封装成函数
$nodeArr = array('名字', '年龄', '介绍');
function getNodeVal($xmldoc, $itemsName, $nodeArr){
$items = $xmldoc->getElementsByTagName($itemsName);
for($i=0; $i < $items->length; $i++){
$item = $items->item($i);
foreach($nodeArr as $node){
$data[$i][] = $item->getElementsByTagName($node)->item(0)->nodeValue;
}
}
return $data;
}
$data = getNodeVal($xmldoc, '学生', $nodeArr);
print_r($data);

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/326712.htmlTechArticle复制代码 代码如下: ?php //Store your html into $html variable. $html="html head titleRakesh Verma/title /head body a href='http://example.com'Example/a a href='http://googl...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn