【原创】简单的XML文档读取与操作
在写程序的时候,经常遇到利用XML文件作为结构化数据传递的方式。一个组件按照一定的结构生成XML,另外一个组件读取XML文件获得数据。这样我们就可以使用很简单的方法来对XML进行操作。
例如:XML文档的结构如下:
<?xml version='1.0' encoding='gb2312'?>
<p>
<Project ProjectFileName='E:\我的文档\2007\KR4Luxh\KR4Luxh.PrjPcb'/>
<Document FileName ='E:\我的文档\2007\KR4Luxh\Documents\总电路图4.Sch'
Organization='YD-350KR2HGE5'
Address1='总电路图5'
Address2='71-041075'
Address3='刘作英5'
Address4='魏占林5'
Title='陈颉5'
DocumentNumber=''
Revision=''
SheetNumber='0'
SheetTotal='0'
CurrentTime='*'
CurrentDate='*'
Time='*'
Date='*'
DocumentFullPathAndName='*'
DocumentName='*'
ModifiedDate='*'
ApprovedBy='*'
CheckedBy='*'
Author='*'
CompanyName='*'
DrawnBy='*'
Engineer='*'
Rule='*'
ImagePath='*'
ConfigurationParameters='*'
/>
<Document FileName ='E:\我的文档\2007\KR4Luxh\Documents\P板原理图4.Sch'
Organization='YD-350KR2HGE4'
Address1='总电路图4'
Address2='71-041074'
Address3='刘作英4'
Address4='魏占林4'
Title='陈颉4'
DocumentNumber=''
Revision=''
SheetNumber='0'
SheetTotal='0'
CurrentTime='*'
CurrentDate='*'
Time='*'
Date='*'
DocumentFullPathAndName='*'
DocumentName='*'
ModifiedDate='*'
ApprovedBy='*'
CheckedBy='*'
Author='*'
CompanyName='*'
DrawnBy='*'
Engineer='*'
Rule='*'
ImagePath='*'
ConfigurationParameters='*'
/>
</p>
我们将其保存为 SchFileTitle.XML。
于是我们的程序可以这样来书写。
Using System.XML
在方法中
XmlDocument m_XMLDoc;
XmlNode m_XmlNode;
m_XMLDoc = New XmlDocument();
m_XMLDoc.Load("SchFileTitle.XML")
//得到所有的Document文档
Foreach( m_XmlNode in m_XMLDoc.SelectNodes("/p/Document"))
{
string mFileName = "";
string mOrganization = "";
mFileName = m_XmlNode.Attributes("FileName").value;
mOrganization = m_XmlNode.Attributes("Organization").value;
....
}
//得到第一个Project文档
m_XmlNode = m_XMLDoc.SelectSingleNode("/p/Project");
//注意XPath中是要区分大小写的。
例如:XML文档的结构如下:
<?xml version='1.0' encoding='gb2312'?>
<p>
<Project ProjectFileName='E:\我的文档\2007\KR4Luxh\KR4Luxh.PrjPcb'/>
<Document FileName ='E:\我的文档\2007\KR4Luxh\Documents\总电路图4.Sch'
Organization='YD-350KR2HGE5'
Address1='总电路图5'
Address2='71-041075'
Address3='刘作英5'
Address4='魏占林5'
Title='陈颉5'
DocumentNumber=''
Revision=''
SheetNumber='0'
SheetTotal='0'
CurrentTime='*'
CurrentDate='*'
Time='*'
Date='*'
DocumentFullPathAndName='*'
DocumentName='*'
ModifiedDate='*'
ApprovedBy='*'
CheckedBy='*'
Author='*'
CompanyName='*'
DrawnBy='*'
Engineer='*'
Rule='*'
ImagePath='*'
ConfigurationParameters='*'
/>
<Document FileName ='E:\我的文档\2007\KR4Luxh\Documents\P板原理图4.Sch'
Organization='YD-350KR2HGE4'
Address1='总电路图4'
Address2='71-041074'
Address3='刘作英4'
Address4='魏占林4'
Title='陈颉4'
DocumentNumber=''
Revision=''
SheetNumber='0'
SheetTotal='0'
CurrentTime='*'
CurrentDate='*'
Time='*'
Date='*'
DocumentFullPathAndName='*'
DocumentName='*'
ModifiedDate='*'
ApprovedBy='*'
CheckedBy='*'
Author='*'
CompanyName='*'
DrawnBy='*'
Engineer='*'
Rule='*'
ImagePath='*'
ConfigurationParameters='*'
/>
</p>
我们将其保存为 SchFileTitle.XML。
于是我们的程序可以这样来书写。
Using System.XML
在方法中
XmlDocument m_XMLDoc;
XmlNode m_XmlNode;
m_XMLDoc = New XmlDocument();
m_XMLDoc.Load("SchFileTitle.XML")
//得到所有的Document文档
Foreach( m_XmlNode in m_XMLDoc.SelectNodes("/p/Document"))
{
string mFileName = "";
string mOrganization = "";
mFileName = m_XmlNode.Attributes("FileName").value;
mOrganization = m_XmlNode.Attributes("Organization").value;
....
}
//得到第一个Project文档
m_XmlNode = m_XMLDoc.SelectSingleNode("/p/Project");
//注意XPath中是要区分大小写的。