<ico name="bookstroe" ico="ico1" />
//元素ico有两个属性分别是name,ico,它们的值分别是:bookstroe,ico1
----
<ico>
<name>ico2</name>
<address>ico/ico2.ico</address>
</ico>
//元素ico有2个子元素分别是name,address,它们的内容分别是ico2,ico/ico2.ico
第一种方法
XmlDocument xmldoc ;
XmlNode xmlnode ;
XmlElement xmlelem ;
XmlElement xmlelem1 ;
XmlText xmltext ;
xmldoc = new XmlDocument ( ) ;
//加入XML的声明段落
xmlnode = xmldoc.CreateNode ( XmlNodeType.XmlDeclaration , "" , "" ) ;
xmldoc.AppendChild ( xmlnode ) ;
//加入一个根元素
xmlelem = xmldoc.CreateElement ( "" , "ROOT" , "" ) ;
xmltext = xmldoc.CreateTextNode ( "Root Text" ) ;
//加属性
XmlAttribute xmlattribute = xmldoc.CreateAttribute("number");
xmlattribute.Value = "1";
xmlelem.Attributes.Append(xmlattribute);
xmlelem.AppendChild ( xmltext ) ;
xmldoc.AppendChild ( xmlelem ) ;
//加入另外一个元素
xmlelem1 = xmldoc.CreateElement ( "" , "Element1" , "" ) ;
xmltext = xmldoc.CreateTextNode ( "Element1 text " ) ;
xmlelem1.AppendChild ( xmltext ) ;
xmldoc.ChildNodes.Item(1).AppendChild ( xmlelem1 ) ;
//保存创建好的XML文档
xmldoc.Save ( "c:\\localinfo.xml" ) ;
第二种方法..
XmlDocument doc = new XmlDocument ( ) ;
doc.LoadXml (
"<Employees> " +
"<NO1>" +
"<Name>Ma Jin Hu</Name>" +
"<ZIP> 239000 </ZIP>" +
"<Address>Feng Huang Street</Address>" +
"<City>Chu Zhou City</City>" +
"<State> ANHUI </State>" +
"</NO1>" +
"<NO2>" +
"<Name>Wang Tian</Name>" +
"<ZIP> 239000 </ZIP>" +
"<Address>Lang Ya Street</Address>" +
"<City>He Fei City</City>" +
"<State> ANHUI </State>" +
"</NO2>" +
"<NO3>" +
"<Name>Zou Wen Biao</Name>" +
"<ZIP> 100000 </ZIP>" +
"<Address>Sai Di Street</Address>" +
"<City>Bei Jin City</City>" +
"<State>Bei Jin</State>" +
"</NO3>" +
"</Employees>" ) ;
doc.Save ( "localinfo.xml" ) ;
读XML文档
private XmlDocument InitXmlDocument()
{
try
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(docName);
return xmldoc;
}
catch(Exception err)
{
Console.Write(err.Message);
//MessageBox.Show(err.ToString(),"VisIONLocalInformation",MessageBoxButtons.OK,MessageBoxIcon.Error);
return null;
}
}
public ArrayList LoadXmlDoc()
{
try
{
xmlDoc = InitXmlDocument();
if(xmlDoc == null)
{
return null;
}
XmlNodeList xmlnodelist = xmlDoc.SelectSingleNode("LocalInfo/RecentFile").ChildNodes;
recentfilecollection.Clear();
foreach(XmlNode xn in xmlnodelist)
{
XmlElement xe = (XmlElement)xn;
XmlNodeList xnl = xe.ChildNodes;
RecentFile recentfile = new RecentFile();
recentfile.FileName = xnl[0].InnerText;
recentfile.FileOpenType = xnl[1].InnerText;
recentfile.FileOpenDate = xnl[2].InnerText ;
recentfilecollection.Add(recentfile);
}
return recentfilecollection;
}
catch(Exception err)
{
Console.Write(err.Message);
//MessageBox.Show(err.Message);
return null;
}
}
xml文件如下:
2 <MESSAGE Type="Reply" Reference="Ref3">
3 <PARAMETER Name="PublicReply" Type="XMLString">
4 <MyAPI_RESULT xmlns="MyAPI">
5 <ANSWER ID="801">
6 <RECORDS>
7 <ROW ForID="123456" data1="1" data2="2" data3="3"/>
8 </RECORDS>
9 </ANSWER>
10 </MyAPI_RESULT>
11 </PARAMETER>
12 </MESSAGE>
13 </MODULE>
如果按往常查询的话:
doc.LoadXml(strXMLData);
XmlNode root = doc.SelectSingleNode(".//RECORDS");
root是null。
解决办法:
2 doc.LoadXml(strXMLData);
3 XmlNamespaceManager manager = new XmlNamespaceManager(doc.NameTable);
4 manager.AddNamespace("MyAPI", "MyAPI");
5 XmlNode root = doc.SelectSingleNode("//MyAPI:RECORDS", manager);
加上XmlNamespaceMananger就可以正常了。