当前位置:编程学习 > C#/ASP.NET >>

这让我情何以堪啊~~~~


xml定义:
 <MenuItems>
      <MenuItems1 Text="快件托运" id="1" NavigateUrl="">
        <SubMenuItemsss Text="网上寄件" id="11" NavigateUrl=""></SubMenuItemsss>
        <SubMenuItems2  Text="寄件查询" id="12" NavigateUrl="">
          <SsubMenuItems Text="收送范围查询" id="121" NavigateUrl=""></SsubMenuItems>
          <SsubMenuItems Text="服务时效查询" id="122" NavigateUrl=""></SsubMenuItems>
          <SsubMenuItems Text="快件运费查询" id="123" NavigateUrl=""></SsubMenuItems>
          <SsubMenuItems Text="汇率查询" id="124" NavigateUrl=""></SsubMenuItems>
          <SsubMenuItems Text="违法违规禁寄物品查询" id="125" NavigateUrl=""></SsubMenuItems>
          <SsubMenuItems Text="进出口物品条例查询" id="126" NavigateUrl=""></SsubMenuItems>
          <SsubMenuItems Text="客户编码查询" id="127" NavigateUrl=""></SsubMenuItems>
        </SubMenuItems2>
        <SubMenuItems3 Text="常用表格" id="13" NavigateUrl=""></SubMenuItems3>
        <SubMenuItems4 Text="通知取件" id="14" NavigateUrl=""></SubMenuItems4>
        <SubMenuItems5 Text="准备货件" id="15" NavigateUrl=""></SubMenuItems5>
            ...    ...    ....   ....   ...

C#代码这样写得不到xml该节点的子节点,谁能告诉为什么?
  法一: XmlNodeList xn_treenode = X_nodes.SelectNodes("descendant::MenuItems");
      xn_treenode 的count值为要么为0,要么为1。为什么?
  法二: XmlNode xmlnode = X_nodes.SelectSingleNode("descendant::MenuItems");
        xmlnode   MenuItems1 级节点能取到,但是SubMenuItems2  节点就取不到,为什么?


                                                 小弟在此跪求各位大虾指教。
--------------------编程问答-------------------- 看看这个行不 
XmlDocument xmldoc = new XmlDocument(); 
xmldoc.Load(@"c:\m.xml");
xmldoc.SelectNodes("descendant::MenuItems");
  --------------------编程问答-------------------- 错了:少了依据
XmlDocument doc = new XmlDocument();
            doc.Load(this.cfgDir + "/IO_config.xml");

            XmlElement root = doc.DocumentElement;
从root调用select方法 --------------------编程问答-------------------- 另外看看xml文件头是否有xmlns属性。如果有需要加入manager控制。
 XmlDocument xmldoc = new XmlDocument(); 
            xmldoc.Load(@"c:\m.xml"); 
            XmlNamespaceManager manager = new XmlNamespaceManager(xmldoc.NameTable); 
            manager.AddNamespace("xspf", "http://www.google.com/schemas/sitemap/0.84");
            int i = xmldoc.SelectNodes("//xspf:url",manager).Count;


<?xml version="1.0" encoding="utf-8"?>
    <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
      <url>
        <loc>http://www.hq.com/</loc>
        <lastmod>2011-02-11</lastmod>
        <priority>1.0</priority>
      </url> --------------------编程问答-------------------- !IsPostBack了吗? --------------------编程问答--------------------
引用 3 楼  的回复:
另外看看xml文件头是否有xmlns属性。如果有需要加入manager控制。
 XmlDocument xmldoc = new XmlDocument(); 
            xmldoc.Load(@"c:\m.xml"); 
            XmlNamespaceManager manager = new XmlNamespaceManager(xmldoc.Nam……

 我想应该不是xmlns属性的问题,xml节点除了最后一级是同名外其他都不相同,所以不会有命名空间的问题。
      public XmlNode GetXmlNodes(string menus)
    {
        XmlNode xnode = null;
        string filepath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "TranslateXML.xml";
        if (!File.Exists(filepath))
        {
            xnode = null;
        }
        XmlDocument xdoc = null;
        try
        {
            xdoc = new XmlDocument();
            xdoc.Load(filepath);
            xnode = xdoc.SelectSingleNode("descendant::" + menus);
到这一步数据都是没问题的啊 --------------------编程问答--------------------
引用 4 楼  的回复:
!IsPostBack了吗?

这跟!IsPostBack有什么关系哦?
--------------------编程问答-------------------- --------------------编程问答-------------------- 找找现成的代码例子。自己再研究研究可能就出来了。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,