當前位置:首頁 » 編程語言 » 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;

熱點內容
硬碟緩存什麼用 發布:2025-05-19 22:09:41 瀏覽:11
蘋果筆記本配置好的有哪些 發布:2025-05-19 22:08:57 瀏覽:15
oracle存儲過程中批量修改表結構 發布:2025-05-19 22:02:22 瀏覽:520
php支付寶sdk 發布:2025-05-19 22:01:06 瀏覽:602
雲掃墓源碼 發布:2025-05-19 22:00:32 瀏覽:593
executeupdatesql 發布:2025-05-19 21:58:36 瀏覽:217
中國電信如何轉人工密碼是多少 發布:2025-05-19 21:44:54 瀏覽:209
求階乘的c語言 發布:2025-05-19 21:15:20 瀏覽:965
話嘮安卓哪裡下載 發布:2025-05-19 20:27:04 瀏覽:166
瘋狂android講義光碟 發布:2025-05-19 20:12:31 瀏覽:153