有这样的xml文件
<xml xmlns:s='uuid:1234'
xmlns:dt='uuid:5678'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='JobID' rs:number='1' rs:nullable='true' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='8'/>
</s:AttributeType>
<s:AttributeType name='FieldID' rs:number='2' rs:writeunknown='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='10' rs:maybenull='false'/>
</s:AttributeType>
<s:AttributeType name='PictureID' rs:number='3' rs:nullable='true'>
<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='54'/>
</s:AttributeType>
</s:ElementType>
</s:Schema>
<rs:data>
</rs:data>
</xml>我想把<s:AttributeType name='PictureID' rs:number='3' rs:nullable='true'>
这行变成<s:AttributeType name='FieldID' rs:number='2' rs:writeunknown='true' rs:age='25'>
怎么变,,,,,因为有命名空间,不太会弄

解决方案 »

  1.   

    完整解决:                XmlDocument doc = new XmlDocument();
                    doc.Load(@"C:\test2.xml");
                    XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
                    nsmgr.AddNamespace("s", "uuid:1234");
                    nsmgr.AddNamespace("dt", "uuid:5678");
                    nsmgr.AddNamespace("rs", "urn:schemas-microsoft-com:rowset");
                    nsmgr.AddNamespace("z", "#RowsetSchema");                XmlNode node = doc.SelectSingleNode("//s:AttributeType[@name='PictureID']", nsmgr);
                    XmlAttribute attr = node.Attributes["name"];
                    attr.Value = "FieldID";
                    attr = node.Attributes["rs:number"];
                    attr.Value = "2";                attr = node.Attributes["rs:nullable"];
                    node.Attributes.Remove(attr);                attr = doc.CreateAttribute("rs:writeunknown", "urn:schemas-microsoft-com:rowset");
                    attr.Value = "true";
                    node.Attributes.Append(attr);                attr = doc.CreateAttribute("rs:age", "urn:schemas-microsoft-com:rowset");
                    attr.Value="25";
                    node.Attributes.Append(attr);
                    doc.Save(@"C:\test3.xml");