当前位置:首页 » 编程语言 » php节点

php节点

发布时间: 2023-05-23 10:29:22

php中如何获取全部子节点的父节点

假设你系统里数据库请求的函数是 pdo_query (你自己根据情况调整),表名是tblcate

另外,这段代码使用到了array_column函数,该函数从php5.5起才有,如果你的版本较低,要找一个兼容函数放到函数库里(官方文档评论中就有实现)

以下是代码文本 如烂拆果复制过去出现T_VARIABLE错误,就是代码中字符被系统混掉了,你要重新手打一下

//这里根据你的意思,应该是选出没有下级的节点,如果需要全部或其它的,你根据情况修改,不影响后面的其它操作

$selectedNodes = pdo_query("select * from tblcate where pid not in(select pid from tblcate)");

//选出全部节点

$allNodes =pdo_query("select * fromtblcate ");

//将汪悄节点数据使用id索引,方便获取

$allNodes = array_column($allNodes, NULL, 'id');

foreach($selectedNodes as &$node){

$tree =getParentNode($node['pid'困历渣]);

//这里的$tree 是上级名称拼起来的,不包含本级名称,如要包含,在后面附加上就行了

$node['tree'] = implode(',',$tree);

}

unset($node);

var_export($selectedNodes);

function getParentNode($pid){

global $allNodes;

$pnodes=[];

if($pid> 0 && isset($allNodes[$pid])){

$pNode =$allNodes[$pid];

$pnodes[]= $pNode['name'];

$rnodes =getParentNode($pNode['pid']);

if(!empty($rnodes)){

$pnodes = array_merge($pnodes,$rnodes);

}

}

return $pnodes;

}

❷ php抓取网页中的节点怎么弄

有2种处理方法:
1、使用正则
$titlePattern='#<title>(.*?)</title>#is';
$metaPattern='#<meta[^>]*?name="A"[^>]*?content="蚂裤([^"]*?)"[^>]*?>#is';

2、使用phpQuery
已传附件,使用方法参袭闷考demo文件:
https://github.com/TobiaszCudnik/phpquery/blob/master/demo.php

更多PHP相关内容,请关闷禅简注:http://www.zjmainstay.cn



❸ php操作XML向已经存在的节点添加子节点并赋值

假设你的xml为stu.xml
---------------那么--------------
$doc = new DOMDocument();
$doc->load( 'stu.xml' );
$students = $doc->getElementsByTagName( "xuesheng" );
foreach($students as $stu){
$yuwen = $stu->getElementsByTagName( "yuwen" )->item(0)->nodeValue;
$shuxue = $stu->getElementsByTagName( "shuxue" )->item(0)->nodeValue;
$yingyu = $stu->getElementsByTagName( "yingyu" )->item(0)->nodeValue;
$zongfen = $stu->getElementsByTagName( "zongfen" )->item(0)->nodeValue;
if($zongfen){
echo "节点已经存在了,不再添加!";
continue;
}
$zongfen = $yuwen+$shuxue+$yingyu;
$newNode = $doc->createElement("zongfen",$zongfen);
$stu->appendChild($newNode);
}
echo $result = $doc->saveXML();
file_put_contents("stu.xml",$result); //这句其实是不需要加上的- - 但是我也不晓得为什么save不了,就加了这句~
希望对你有用哦~

❹ PHP遍历XML文档所有节点的方法

本文实例讲述了PHP遍历XML文档所有节点的方法。分享给大家供大家参考。具体实现方法如下:
1.
contact.xml代码:
<contact
id="行闷43956">
<personal>
<name>
<first>J</first>
<middle>J</middle>
<last>J</last>
</name>
<title>Manager</title>
<employer>National</employer>
<档或弯dob>1971-12-22</dob>
</personal>
</contact>
2.
php代码:
<?php
function
walk_tree
($node,
$depth
=
0)
{
for
($i
=
0,
$indent
=
'';
$i
<
$depth;
$i++)
$indent
.=
'
';
if
($node->type
==
XML_ELEMENT_NODE)
{
print
($indent
.
$node->tagname
.
"\n");
$kids
=
$node->children
();
$nkids
=
count
($kids);
if
($nkids
>
0)
{
$depth++;
for
($i
=
0;
$i
<
$nkids;
$i++)
walk_tree
($kids[$i],
$depth);
$depth--;
}
}
}
$doc
=
xmldocfile
('contact.xml');
print
("<pre>\n");
walk_tree
($doc->root
());
print
("</pre>\n");
?>
希望本文所述对大家的php程序设计有团清所帮助。

❺ 怎样用php添加xml中的节点

php有个simplexml的有一系列操作xml的函数,可以去看看。

❻ php中怎么利用dom查找到某元素的节点(<div class='aaa')并修改其元素内容

其实和客户端查找某元素的节点是差不多的,只是这里面的代码写在PHP中。
在JS中,如果只是获取class='aaa'的DIV元素,那么只要遍历文档树中的DIV元素,如果要获取class='aaa'的元素,不单是DIV,那么就要遍历整个文档树。我这里就只遍历DIV元素,取出class为'aaa'的DIV元素。且看下面的代码:
-------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>获取class为aaa的DIV元素并使之颜色为红</title>
</head>
<body>
<div class="aaa">第一个DIV</div>
<div class="aaa">第二个DIV</div>
<div>第二个DIV,但没有class</div>
<span class="aaa">span标签</span>
<script type="text/javascript">
//获取根节点
var root = document;
//获取DOM中的div元素,数组形式
var need = root.getElementsByTagName('div');
//遍历这个组数
for(var i=0;i<need.length;i++){
//如果这个组数元素(即该DIV)的className为'aaa',给它一个样式为前景红色
if(need[i].className=='aaa'){
need[i].style.color = 'red';
}
}
</script>
</body>
</html>
------------------------------------

执行后,只有class为'aaa'的DIV元素中的文本变成了红色
接下来就把这段JS脚本写到PHP里
--------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>获取class为aaa的DIV元素并使之颜色为红</title>
</head>
<body>
<div class="aaa">第一个DIV</div>
<div class="aaa">第二个DIV</div>
<div>第二个DIV,但没有class</div>
<span class="aaa">span标签</span>
<?php
echo "<script type=\"text/javascript\">
var root = document;
var need = root.getElementsByTagName('div');
for(var i=0;i<need.length;i++){
if(need[i].className=='aaa'){
need[i].style.color = 'red';
}
}
</script>";
?>
</body>
</html>
----------------------------------
就是一个echo这么简单,把JS脚本显示出来

❼ PHP读取XML节点问题

假定这个xml是一个字串 $xml

$xml = new SimpleXMLElement($xml);

$autoPlay = $xml->attributes()->autoPlay;
$autoNextSong = $xml->attributes()->autoNextSong;

这样你获取的会此燃是两册扒禅个对象, 如州尘果需要用来做某些特定的事情, 比如显示

echo (string)$autoPlay;

热点内容
雷神g50如何设置安卓原生模式 发布:2024-05-19 16:50:04 浏览:120
c语言小数四舍五入 发布:2024-05-19 16:23:28 浏览:525
数据库被注入攻击 发布:2024-05-19 16:21:31 浏览:835
微信忘记密码从哪里看 发布:2024-05-19 16:06:37 浏览:33
宝马x4贷款买哪个配置好 发布:2024-05-19 15:56:03 浏览:23
微控pid算法 发布:2024-05-19 15:46:31 浏览:136
云盘视频解压密码 发布:2024-05-19 15:23:17 浏览:848
和平精英怎么改地区位置安卓 发布:2024-05-19 15:19:05 浏览:286
酒店的路由器如何配置 发布:2024-05-19 15:10:44 浏览:502
rpgmaker脚本 发布:2024-05-19 14:48:58 浏览:409