java生成樹
㈠ 用java解析節點名不同的xml,並生成樹結構,顯示在頁面上。點擊節點名會顯示它的屬性。
publicclassXmlData{
Documentdocument=null;
publicbooleanopen(StringfileName)throwsException{
try{
=DocumentBuilderFactory
.newInstance();
=documentBuilderFactory
.newDocumentBuilder();
document=documentBuilder.parse(newFile(fileName));
returntrue;
}catch(Exceptione){
returnfalse;
}
}
publicList<String>showXml(StringfileName)throwsException{
this.open(fileName);
NodeListnodeList=document.getElementsByTagName("*");
Nodenode=nodeList.item(0);
List<String>list=newArrayList<String>();
for(intj=0;j<nodeList.getLength();j++){
node=nodeList.item(j);
if(nodeinstanceofElement){
Stringshow=node.getNodeName()+":"
+node.getFirstChild().getNodeValue();
list.add(show);
}
}
returnlist;
}
}
㈡ java後台動態生成樹,mysql語句怎麼寫啊。新手。
一般都是每條記錄存個parent_id ,然後從根節點一層一層找。在java中一層層遞歸再組成列表展示在前台。或者用ajax,每次點擊向下找一層。
㈢ 用java編寫 用正則表達式獲取XML中得節點的內容,生成樹,然後把生成的樹遍歷
有各種xml庫不用,用正則? 蛋疼
㈣ 急求:怎麼使用ZK技術在java代碼中動態生成樹
哥們 動態樹的這個搞好了么 現在急需 可以把做好的例子發我郵箱么 [email protected]
㈤ 用Java實現生成樹協議
快速生成樹協議(RSTP)STP並不是已經淘汰不用,實際上不少廠家目前還僅支持STP。STP的最大缺點就是他的收斂時間太長,對於現在網路要求靠可靠性來說,這是不允許的,快速生成樹的目的就是加快乙太網環路故障收斂的速度。1.RSTP 5種埠類型STP定義了4種不同的埠狀態,監聽(Listening),學習(Learning),阻斷(Blocking)和轉發(Forwarding),其埠狀態表現為在網路拓撲中埠狀態混合(阻斷或轉發),在拓撲中的角色(根埠、指定埠等等)。在操作上看,阻斷狀態和監聽狀態沒有區別,都是丟棄數據幀而且不學習MAC地址,在轉發狀態下,無法知道該埠是根埠還是指定埠。表8-20中看RSTP的埠狀態只有三種狀態,Discarding、Leaning和Forwarding。表8-20 STP和RSTP埠狀態比較RSTP有五種埠類型。根埠和指定埠這兩個角色在RSTP中被保留,阻斷埠分成備份和替換埠角色。生成樹演算法(STA)使用BPDU來決定埠的角色,埠類型也是通過比較埠中保存的BPDUB來確定哪個比其他的更優先。1)根埠非根橋收到最優的BPDU配置信息的埠為根埠,即到根橋開銷最小的埠,這點和STP一樣。請注意圖8-16上方的交換機,根橋沒有根埠。按照STP的選擇根埠的原則,SW-1和SW-2和根連接的埠為根埠。2)指定埠與STP一樣,每個乙太網網段段內必須有一個指定埠。假設SW-1的BID比SW-2 優先,而且SW-1的P1口埠ID比P2優先順序高,那麼P1為指定埠,如圖8-17所示。 圖8-16 RSTP根埠 圖8-17 指定埠的選擇3)替換埠如果一個埠收到另外一個網橋的更好的 BPDU,但不是最好的,那麼這個埠成為替換埠,如圖8-18所示。對於SW-2來說,埠P3收到的BPDU比自己優先,自己為次優先,P3為替換埠。4)備份埠如果一個埠收到同一個網橋的更好 BPDU,那麼這個埠成為備份端。當兩個埠被一個點到點鏈路的一個環路連在一起時,或者當一個交換機有兩個或多個到共享區域網段的連接時,一個備份埠才能存在。如圖8-19所示,SW-1的P1和P2口同時接入到乙太網的同一網段,P1為指定埠,P2 優先順序低,則P2埠為備份埠。 圖8-18 替換埠的選擇 圖8-19 備份埠的選擇5)禁用埠在快速生成樹協議應用的網路運行中不擔當任何角色。2.BPDU更新與變化RSTP添加標志位,如圖8-20所示。在STP中,標志位只有0為TC和7為TCA使用,RSTP使用其中保留的6位。另外,RSTP在BPDU指定了埠的角色和埠狀態,並且採用提議/同意的控制機制。 具體 參考 下 http://it.kswchina.com/skrz/zh/507188.html
㈥ 在java中用extjs動態生成樹怎麼做(樹有5個節點,這5個節點的內容要從action中讀取)
extjs 發送一個ajax請求到java的後台,通過action返回一個json對象或者前端能解析的數據就可以了。
同時樹的結構在ajax請救時,需要設置同步模式,等待數據載入完成,再子節點。
㈦ Java生成樹中的從根到葉子節點的所有路徑
方法是在dfs的過程中維護dfs的路徑,到達葉子結點時將路徑加入到答案中,具體見代碼的注釋。
輸入格式為:
7A
AB
CA
DB
EB
CF
CG
其中,第一行表示結點數量n和根結點編號,第[2..n + 1]行每行兩個字元u和v,表示樹邊。
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Scanner;
publicclassMain{
staticfinalintmaxn=1000;
intn;//樹的結點個數
charroot;//樹的根
List<List<Character>>ans=newArrayList<List<Character>>();//結果,存放所有路徑
boolean[][]G=newboolean[maxn][maxn];//鄰接矩陣
/**
*dfs
*@paramu當前到達的結點
*@paramfa當前結點的父節點
*@parampath根到fa的路徑
*/
voiddfs(charu,charfa,List<Character>path){
path.add(u);
booleanleaf=true;//u為葉子結點
for(charv='A';v<='Z';++v){
if(G[u][v]&&v!=fa){//鄰接矩陣中有別的邊
leaf=false;//u不是葉子結點
dfs(v,u,path);
}
}
if(leaf){//u為葉子結點,將路徑加入到答案
List<Character>pt=newArrayList<Character>();
for(Characterc:path)pt.add(c);
ans.add(pt);
}
path.remove(path.size()-1);
}
publicvoidgo()throwsFileNotFoundException
{
Scannerin=newScanner(newFile("data.in"));
Strings;//進行輸入的處理時的臨時變數
n=in.nextInt();//獲取結點個數
s=in.next();root=s.charAt(0);//獲取根
for(inti=0;i<n-1;++i){
charu,v;
s=in.next();u=s.charAt(0);//獲取邊,並在鄰接矩陣中做標記
s=in.next();v=s.charAt(0);
G[u][v]=G[v][u]=true;
}
List<Character>path=newArrayList<Character>();
dfs(root,'0',path);
for(inti=0;i<ans.size();++i){//輸出答案
for(Characterc:ans.get(i))
System.out.print(c);
System.out.println();
}
in.close();
}
publicstaticvoidmain(String[]args)throwsFileNotFoundException{
newMain().go();
}
}
㈧ java生成樹結構傳到前台展示
如果是zTree則後台只需要傳一個數組形式的JSON就可以搞定,{name: '父節點1', children: [ {name: '子節點1'}, {name: '子節點2'} ]}這種寫法找父子關系不得找死。
下面這種JSON最方便
var nodes = [
{id:1, pId:0, name: "父節點1"},
{id:11, pId:1, name: "子節點1"},
{id:12, pId:1, name: "子節點2"}
];
後台拼接JSON串代碼也很簡單啊,[id=1 pId=-1 name=名稱1]為一條數據放入數組或List中,[id=101 pId=1 name=名稱2]為一條數據放入集合,依次類推就是一個數據集了,然後for循環拼裝JSON即可:
StringBuilder sb = new StringBuilder();
sb.append("[");
for(...){
sb.append("{\"id\":").append(id).append(",\"pId\":").append(pId).append(",\"name\":\"").append(name).append("\"},");
}
//注意去掉最後一個逗號
......
sb.append("]")
㈨ easyui生成的樹為什麼會再次調用java方法重新再次生成樹
是你java有問題吧,默認easyui的節點是ajax可動態載入的,你點擊最後的節點,他會請求server(你沒有設置那麼是當前的url)查找子樹,你的server端總是返回這段值,當然就錯了。
㈩ 有沒有Java類可以解析html文件並生成樹
Java類可以解析html文件並生成樹
看CSDN上的解釋,望能幫到你,煩請採納