xml页面
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
  <Article name="aa" >
    <a href="Article.aspx?id=44">222</a>
  </Article>
</urlset>
调用页面
  Model.Article model1 = bll.GetModel("Title=\""+model.Title+"\"");
            string xmlPatha = Server.MapPath("../../GoogleSitemaps.xml");
            Common.XmlObject.XmlInsertElement(xmlPatha, "//Article", "Article","<a href=Article.aspx?id="+model1.Id+">"+model.Title+"</a>");
    方法:
 public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Content)
        {
            XmlDocument objXmlDoc = new XmlDocument();
            objXmlDoc.Load(xmlPath);
            XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
            XmlElement objElement = objXmlDoc.CreateElement(Element);
            //objXmlDoc.SelectNodes
            objElement.InnerText = Content;
            objNode.AppendChild(objElement);
            objXmlDoc.Save(xmlPath);
        } 
为什么我拿到的objNode一直是空值? 高手指教...在线等..     

解决方案 »

  1.   

    忘了名称空间吧

     XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode,nmr);
      

  2.   

    本帖最后由 net_lover 于 2012-09-28 17:19:31 编辑
      

  3.   

    xml名称空间是xml技术中的一个重要概念,网上很多讲解了,就跟你写c#代码中的名称空间作用类似
      

  4.   

      public static void XmlInsertElement(string xmlPath, string MainNode, string Element, string Content)
            {
                XmlDocument objXmlDoc = new XmlDocument();
                objXmlDoc.Load(xmlPath);
                XmlNamespaceManager nsmgr = new XmlNamespaceManager(objXmlDoc.NameTable);
                nsmgr.AddNamespace("xx", "../../GoogleSitemaps.xml");
                XmlNode objNode = objXmlDoc.SelectSingleNode("//xx:Article", nsmgr);
                XmlElement objElement = objXmlDoc.CreateElement(Element);
                //objXmlDoc.SelectNodes
                objElement.InnerText = Content;
                objNode.AppendChild(objElement);
                objXmlDoc.Save(xmlPath);
            }
    我直接在方法里边写的  还是不行  还是空值   麻烦下   给写下怎么弄  谢谢
      

  5.   

    你怎么测的啊XmlDocument objXmlDoc = new XmlDocument();
    objXmlDoc.Load(Server.MapPath("~/1.XML"));
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(objXmlDoc.NameTable);
    nsmgr.AddNamespace("xx", "http://www.google.com/schemas/sitemap/0.84");XmlNode objNode = objXmlDoc.SelectSingleNode("//xx:Article", nsmgr);
    Response.Write(objNode.InnerXml);
      

  6.   

     nsmgr.AddNamespace("xx", "../../GoogleSitemaps.xml");这是谁教给你的?