下面是xml文件的编码:
<?xml version="1.0" encoding="utf-8" ?>
<table>
<childTable>
<类型>a</类型>
<来源>1</来源>
<地址>http://1234.aspx</地址>
</childTable>
<childTable>
<类型>a</类型>
<来源>2</来源>
<地址>http://3456.aspx</地址>
</childTable>
<childTable>
<类型>b</类型>
<来源>1</来源>
<地址>http://sdfs.aspx</地址>
</childTable>
</table>
如果您对这三个列有类型的要求,还要添加一个schema文件,如果只是简单存储,那就免了。
<?xml version="1.0" encoding="utf-8" ?>
<table>
<childTable>
<类型>a</类型>
<来源>1</来源>
<地址>http://1234.aspx</地址>
</childTable>
<childTable>
<类型>a</类型>
<来源>2</来源>
<地址>http://3456.aspx</地址>
</childTable>
<childTable>
<类型>b</类型>
<来源>1</来源>
<地址>http://sdfs.aspx</地址>
</childTable>
</table>
如果您对这三个列有类型的要求,还要添加一个schema文件,如果只是简单存储,那就免了。
<?xml version='1.0' encoding="gb2312"?>
<test>
<a>
<address type="1">http://1234.aspx</address>
<address type="2">http://asdf.aspx</address>
</a>
<b>
<address type="1">http://1234.aspx</address>
<address type="2">http://asdf.aspx</address>
</b>
</test>实现:
string[] readXmlPath = {"/test/a/address", "/test/b/address"};
XmlDocument startEnv = new XmlDocument();startEnv.Load(@"c:\test.xml");
XmlNodeList nodeList;
string sAddress = "";try
{
XmlElement root = startEnv.DocumentElement; for (int i = 0; i < readXmlPath.Length; i++)
{
nodeList = root.SelectNodes(readXmlPath[i]);
foreach(XmlNode item in nodeList)
{
switch(readXmlPath[i])
{
case "/test/a/address":
if (int.Parse(item.Attributes.GetNamedItem("type").Value) == 1)
{
sAddress = item.InnerText;
}
break;
case "/test/b/address":
;
break;
}
}
}
}
catch{}其他的你自己再去发挥吧!
<?xml version="1.0"?>
<xs:schema id="table" targetNamespace="http://tempuri.org/~vs3.xsd" xmlns:mstns="http://tempuri.org/~vs3.xsd" xmlns="http://tempuri.org/~vs3.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="table" msdata:IsDataSet="true" msdata:Locale="zh-CN" msdata:EnforceConstraints="False">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="childTable">
<xs:complexType>
<xs:sequence>
<xs:element name="类型" type="xs:string" minOccurs="0" />
<xs:element name="来源" type="xs:string" minOccurs="0" />
<xs:element name="地址" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>在原来的xml文件的第2行还要添加:
<table xmlns="http://tempuri.org/~vs3.xsd">
这样就可以用schema文件来约束xml文件的数据了。
以上皆在vs.net中完成,自己用写字板写也不难。
请问用你的这种方式如何在程序中实现读取,谢谢!