有XML格式如下:
<ActiveReportsLayout Version="4">
<Object type="DataDynamics.ActiveReports.TextBox" name="TextBox1">
<Property name="DataField">货物名称-1</Property>
</Object>
<Object type="DataDynamics.ActiveReports.TextBox" name="TextBox1">
<Property name="DataField">货物名称-2</Property>
</Object>
<Object type="DataDynamics.ActiveReports.TextBox" name="TextBox1">
<Property name="DataField">货物名称-3</Property>
</Object>我现在要读取所有的Property 节点的 name = “DataField”的 value 即是上面的货物名称-1、 货物名称-2、 货物名称-3;
该怎么读取呢?
<ActiveReportsLayout Version="4">
<Object type="DataDynamics.ActiveReports.TextBox" name="TextBox1">
<Property name="DataField">货物名称-1</Property>
</Object>
<Object type="DataDynamics.ActiveReports.TextBox" name="TextBox1">
<Property name="DataField">货物名称-2</Property>
</Object>
<Object type="DataDynamics.ActiveReports.TextBox" name="TextBox1">
<Property name="DataField">货物名称-3</Property>
</Object>我现在要读取所有的Property 节点的 name = “DataField”的 value 即是上面的货物名称-1、 货物名称-2、 货物名称-3;
该怎么读取呢?
解决方案 »
- 一个自定义属性的问题,帮忙解答一下,谢谢
- 怎么解决加了钩子后,鼠标动作变慢的问题
- 请问一个关于报表控件的问题
- 求高手指导一下filestream的问题
- ***多层分布式应用程序设计:ASP.NET WebServer 和.NET Remoting 体系架构选择问题?
- 关于截获键盘消息的问题
- c#的压缩算法(比如zip算法)在那个类中实现的,我怎么没有发现。
- 小弟做一系统,一个页面用一个连接,如果100个人访问,是否会生成100连接,怎样解决。
- 如何动态调整工具栏的图标
- 使用FtpClient批量上传文件
- 您未被授权查看该页 2003 iis c#webservice配置
- 紧急求助!HyperLinkField如何对传递的参数进行加密?
List<string> items=new List<string>();
XmlDocument doc=new XmlDocument();
doc.Load("demo.xml");
IterateNode(doc.DocumentElement); protected void IterateNode(XmlNode node)
{
if(node==null)return;
if(node.NodeType== XmlNodeType.Element)
{
if(node.Name=="Object")
{
ParseObjNode(node);
}
}
foreach(XmlNode child in node.ChildNodes)
{
IterateNode(child);
}
}
protected void ParseObjNode(XmlNode node)
{
if(node==null)return;
foreach(XmlNode child in node.ChildNodes)
{
if(child.Name=="Property")
{
string name=GetAttributeBy(child,"name");
if(name=="DataField")
{
items.Add(child.InnerText);
}
}
}
}
protected string GetAttributeBy(XmlNode node, string attr)
{
if(node==null)return "";
if(attr==null||attr.Trim()=="")return "";
if(node.Attributes[attr]!=null)
return node.Attributes[attr].Value;
return "";
}
{
System.Xml.XmlDocument xdom = new System.Xml.XmlDocument();
xdom.Load(_filename);
System.Xml.XmlNodeList xnl = xdom.SelectNodes("//Property[@name='DataField']");
return xnl;
}//调用
XmlNode xn = xnl[0];
string str1 = xn.InnerText; //str1 = "货物名称-1"
for (int i = 0; i < root.ChildNodes.Count; i++)
{
XmlNode node = root.ChildNodes[i];
for (int j = 0; j < node.ChildNodes.Count; j++)
{
XmlNode node2 = node.ChildNodes[j];
if (node2.Attributes["name"] != null && node2.Attributes["name"].Value == "DataField")
{
values.Add(node2.InnerText);
}
}
}这样不就行了吗