XML示例:
。
<info>
<memu>1</memu>
<datainfo>demo1</datainfo>
</info>
<info>
<memu>2</memu>
<datainfo>demo2</datainfo>
</info>
<info>
<memu>2</memu>
<datainfo>demo3</datainfo>
</info>
。。
需求描述:
1.查出节点为memu的值设为父节点,datainfo的值设置为子节点。
2.有重复的memu的值就并和到一个父节点下。 生成如下所示树状列:
1
demo1
2
demo2
demo3问题:我已用递归取到每个info内的节点集,但不知如何判断单个节点是否为memu,用SelectSingleNode报错。
。
<info>
<memu>1</memu>
<datainfo>demo1</datainfo>
</info>
<info>
<memu>2</memu>
<datainfo>demo2</datainfo>
</info>
<info>
<memu>2</memu>
<datainfo>demo3</datainfo>
</info>
。。
需求描述:
1.查出节点为memu的值设为父节点,datainfo的值设置为子节点。
2.有重复的memu的值就并和到一个父节点下。 生成如下所示树状列:
1
demo1
2
demo2
demo3问题:我已用递归取到每个info内的节点集,但不知如何判断单个节点是否为memu,用SelectSingleNode报错。
解决方案 »
- 求助 各位大神校内网 网址转换怎么实现的xiaonei变renren
- 【在线等】请教大虾 C#windows窗体应用程序问题 用三个按钮如何切换?
- 怎么样用代码模拟进行TREEVIEW的点选操作?
- TcpClient的ReceiveTimeout的问题!急!
- 请问高手:如何在一个DataGrid中同时显示2张表的内容(附例子,请教解决方案)?
- 小波变换如何入门?
- 求: c#开发的BHO范例源码...
- 在windowsForm中,怎样将一个本地文件上传到ftp上,(进ftp需要用户名和密码)
- 如何让密码输入项的textbox里显示的是星号
- 用html页面调用activex可以正常显示,改成aspx页面后左上角显示叉
- 如何在WPF下用Hyperlink实现xaml窗体间传递参数
- 我部署程序的时候,明明已经在“应用程序文件夹”里添加了几个txt和DLL文件,为什么安装后却没有了?在软件文件夹里找不到了
{
path = AppDomain.CurrentDomain.BaseDirectory + @"NameList.xml";
xml.Load(path);//加载xml文件
bindTvXml();
} /// <summary>
/// 绑定TreeView
/// </summary>
private void bindTvXml()
{
for (int i = 0; i < xml.DocumentElement.ChildNodes.Count; i++)
{
XmlNode Xnode = xml.DocumentElement.ChildNodes[i];
TreeNode node = new TreeNode();
node.Text = Xnode.Attributes["name"].Value;
node.Tag = Xnode;
bindChildNode(node, Xnode);//绑定子节点
TvXml.Nodes.Add(node);
TvXml.HideSelection = false;
}
}
/// <summary>
/// 递归绑定子节点
/// </summary>
/// <param name="node"></param>
/// <param name="xml"></param>
private void bindChildNode(TreeNode node, XmlNode xml)
{
for (int i = 0; i < xml.ChildNodes.Count; i++)
{
TreeNode Childnode = new TreeNode();
XmlNode ChildXml = xml.ChildNodes[i];
Childnode.Text = ChildXml.Value;
Childnode.Name = "1";
Childnode.Tag = xml.ChildNodes[i];
if (ChildXml.HasChildNodes)
{
if (ChildXml.ChildNodes[0].NodeType == XmlNodeType.Text)
Childnode.Text = ChildXml.ChildNodes[0].InnerText;
else
bindChildNode(Childnode, ChildXml);
}
node.Nodes.Add(Childnode);
}
}
{
string xml = @"<info>
<memu>1</memu>
<datainfo>demo1</datainfo>
</info>
<info>
<memu>2</memu>
<datainfo>demo2</datainfo>
</info>
<info>
<memu>2</memu>
<datainfo>demo3</datainfo>
</info>";
XElement x = XElement.Load(Server.MapPath("~/Web.config"));
foreach (XElement r in x.Elements())
{
TreeNode node = new TreeNode();
node.Text = r.Name.ToString();
BindChild(node,r.Elements());
TreeView1.Nodes.Add(node);
};
}
public void BindChild(TreeNode node,IEnumerable<XElement> xs)
{
foreach (XElement r in xs)
{
TreeNode ChildNode = new TreeNode();
ChildNode.Text = r.Name.ToString();
node.ChildNodes.Add(ChildNode);
BindChild(ChildNode, r.Elements());
};
}LINQ绑TREEVIEW