zoukankan      html  css  js  c++  java
  • Get ancestors list in an XML document

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Xml;

    namespace ReadXmlDemo
    {
        
    /// <summary>
        
    /// Form1 的摘要说明。
        
    /// </summary>

        public class Form1 : Form
        
    {
            
    private Button button1;
            
    private Container components = null;

            
    public static void Main()
            
    {
                Application.Run(
    new Form1());
            }


            
    public Form1()
            
    {
                InitializeComponent();
            }


            
    protected override void Dispose(bool disposing)
            
    {
                
    if (disposing) {
                    
    if (components != null{
                        components.Dispose();
                    }

                }

                
    base.Dispose(disposing);
            }


            
    #region Windows 窗体设计器生成的代码

            
    /// <summary>
            
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            
    /// 此方法的内容。
            
    /// </summary>

            private void InitializeComponent()
            
    {
                
    this.button1 = new Button();
                
    this.SuspendLayout();
                
    // 
                
    // button1
                
    // 
                this.button1.Location = new Point(17648);
                
    this.button1.Name = "button1";
                
    this.button1.TabIndex = 0;
                
    this.button1.Text = "button1";
                
    this.button1.Click += new EventHandler(this.button1_Click);
                
    // 
                
    // Form1
                
    // 
                this.AutoScaleBaseSize = new Size(614);
                
    this.ClientSize = new Size(292273);
                
    this.Controls.Add(this.button1);
                
    this.Name = "Form1";
                
    this.Text = "Form1";
                
    this.ResumeLayout(false);

            }


            
    #endregion


            
    private void button1_Click(object sender, EventArgs e)
            
    {
                Setup();

                
    string url = "/pmanager/scm/frmscmindex.aspx";
                
    string param = "projectid";

                XmlNode[] ancestors 
    = GetAncestorNodeList(url, param);

                
    // test results
                if (ancestors != null{
                    
    foreach (XmlNode node in ancestors)
                        MessageBox.Show(node.OuterXml);
                }

            }


            
    private XmlDocument doc;

            
    /// <summary>
            
    /// 加载 Xml 文档
            
    /// </summary>

            private void Setup()
            
    {
                doc 
    = new XmlDocument();
                
    try {
                    doc.Load(Application.StartupPath 
    + "\\nav.xml");
                }

                
    catch {
                    
    throw new Exception("Xml 文件加载失败。");
                }

            }


            
    /// <summary>
            
    /// 得到指定节点的祖先节点的数组(强类型)
            
    /// </summary>
            
    /// <param name="url"></param>
            
    /// <param name="param"></param>
            
    /// <returns></returns>

            private XmlNode[] GetAncestorNodeList(string url, string param)
            
    {
                XmlNode targetNode 
    = doc.SelectSingleNode("//siteMapNode[@url='" + url + "' and @param='" + param + "']");
                
    if (targetNode == null)
                    
    return null;

                ArrayList alAncestors 
    = new ArrayList();

                
    for (XmlNode node = targetNode.ParentNode;
                    node 
    != null && node != doc.DocumentElement;
                    node 
    = node.ParentNode) {
                        alAncestors.Add(node);
                }

                alAncestors.Reverse();

                XmlNode[] nodeList 
    = (XmlNode[]) alAncestors.ToArray(typeof (XmlNode));

                
    return nodeList;
            }

        }

    }
  • 相关阅读:
    GoogLeNet学习笔记
    ResNet学习笔记
    VGG学习笔记
    AlexNet学习笔记
    目标检测SSD
    YOLO系列(1)—— YOLO v1
    YOLO系列(2)—— YOLO v2
    R-CNN系列(4)—— Faster R-CNN
    如何打开.ipynb文件
    机器学习中的采样
  • 原文地址:https://www.cnblogs.com/RChen/p/199938.html
Copyright © 2011-2022 走看看