有XML文件,
<A>
<b>
<name>1111</name>
<key>2222</Key>
<name>3333</name>
<value>4</value>
</b>
<b>
<name>5</name>
<key>6</Key>
<name>7</name>
<value>8</value>
</b>
</A>
怎么设计一个类读取这个文件.
最后的结果是比如我想读取 值3333 用read(3)就可以把值给读取出来
<A>
<b>
<name>1111</name>
<key>2222</Key>
<name>3333</name>
<value>4</value>
</b>
<b>
<name>5</name>
<key>6</Key>
<name>7</name>
<value>8</value>
</b>
</A>
怎么设计一个类读取这个文件.
最后的结果是比如我想读取 值3333 用read(3)就可以把值给读取出来
String[] Str = new String[8]{...}
取
public string read(int a)
{
return Str[a];
}
<key>
<name>
<value>
...这些ASP 的语法不懂所以上面的只能提供一个参考
class ReadXml
{
XmlDocument xd; XmlNode root;
int current = 0; public ReadXml(string path)
{
xd = new XmlDocument(); xd.Load(path);
root = xd.DocumentElement;
} public String Read(int index) //按序号读当前节点的子节点
{
return root.ChildNodes[current].InnerText;
} public int Current //设置或读取当前操作根节点的第几个子节点
{
get { return current; }
set { current = value; }
}
}
path为xml文件的路径
public static string read(int i)
{
string name = "";
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("read.xml");
XmlNode node = xmldoc.SelectSingleNode("A");
foreach (XmlNode xn in node.ChildNodes)
{
name += xn.ChildNodes[i-1].InnerText.ToString()+"|";
}
return name;
}调用read(3)
返回的结果是 3333|7|
然后自己利用split函数进行切割
这样可以吗?你读取出来应该是一个定值吧..
再说了return root.ChildNodes[index].InnerText;这样的话也是不行的..
这样read(int i )灵活性不够吧..假如我文件如下<A>
<b>
<name>1111 </name>
<key>2222 </Key>
<name>3333 </name>
<value>4 </value>
</b>
<b>
<name>5 </name>
<key>6 </Key>
<name>7 </name>
<value>8 </value>
</b>
<b>
<name>1111 </name>
<key>2222 </Key>
<name>3333 </name>
<value>4 </value>
</b>
<b>
<name>5 </name>
<key>6 </Key>
<name>7777</name>
<value>8 </value>
</b> </A> 要取7777也是取得不太正确