XMLDocument xmldoc = new XMLDocument();
XMLNode xn = xmldoc.findNode('item/address');
xn.addNode("asdf");

解决方案 »

  1.   

    现在"item/address"是动态变的,只有address下的type是唯一的!
    不知如何定位到type为某一值的address!
      

  2.   

    selectnodes("//address")找到结点集。
    然后用getattribute("type")找到属性值
      

  3.   

    XmlDocument  xmlDoc = new XmlDocument();
    xmlDoc.Load(yourfile);
    XmlNode Node = xmlDoc.SelectSingleNode("/po/items/item/address[@type=billing1]");以上代码将获得节点<address type="billing1">……/address>
      

  4.   

    你的XML文件有问题:
    <item quantity="1" productCode="R-273" description="14.4 Volt Cordless Drill" unitCost="189.95" />这后面那个“/”应该去掉,不然不行
    -------------------------------------------------
    XmlDocument Xmldoc=new XmlDocument();         
    Xmldoc.Load(@"e:\123.xml");
    //Create address1
    XmlElement XmlEle=Xmldoc.CreateElement("address1");
    //set Attribute
    XmlEle.SetAttribute("type","test");

    XmlNode nodeName=Xmldoc.CreateElement("name");
    nodeName.InnerText="Test";XmlNode nodestreet=Xmldoc.CreateElement("street");
    nodestreet.InnerText="Test";

    XmlNode nodecity=Xmldoc.CreateElement("city");
    nodecity.InnerText="china";XmlNode nodestate=Xmldoc.CreateElement("state");
    nodestate.InnerText="c.n";XmlNode nodezip=Xmldoc.CreateElement("zip");
    nodezip.InnerText="1234";
                
    XmlEle.AppendChild(nodeName);
    XmlEle.AppendChild(nodestreet);
    XmlEle.AppendChild(nodecity);
    XmlEle.AppendChild(nodestate);
    XmlEle.AppendChild(nodezip);//定位到最后一个address节点
    XmlNode nodeAddress=Xmldoc.DocumentElement.SelectSingleNode("/po/items/item/address[last()]");
    //添加 address1
    nodeAddress.AppendChild(XmlEle);Xmldoc.Save(@"e:\123.xml");
      

  5.   

    不好意思,上面的定位要改一下:改为://定位到最后一个item节点
    XmlNode nodeAddress=Xmldoc.DocumentElement.SelectSingleNode("/po/items/item[last()]");
      

  6.   

    各位高手,
    我说过了,address的路径是动态的,也就是说不能用po/items/item/address来定位.
    我用的是笨办法不知各位可有好办法.
    参与者有分!
      

  7.   

    刚用vb 写的方法:
                    Dim m_objXMLNodeList As XmlNodeList
                    Dim m_sLocalDir As String
                    Dim objXMLDoc As New XmlDocument
                    m_sLocalDir = Configuration.ConfigurationSettings.AppSettings("Error.Message")
                    objXMLDoc.Load(m_sLocalDir)
                    m_objXMLNodeList = objXMLDoc.DocumentElement.ChildNodes
                    For Each objXMLNode As XmlNode In m_objXMLNodeList
                        If objXMLNode.HasChildNodes Then
                            If objXMLNode.FirstChild.InnerText = sCode Then
                                Return objXMLNode.LastChild.InnerText
                            End If
                        End If
                    Next
      

  8.   

    po/items/item/address 后面加 [@type=billing1],就是为了根据属性type来检索具体节点啊,如果 node = null 的话,说明该节点不存在.不知你说的动态是怎样的动态.
      

  9.   


    是po/items/item/address 为动态的,由可能为po/items/item/test/book/address !