C# 读取xml中特定节点的属性值 xmldocument方式 【有些乱,但有思路】
来源:互联网 发布:矩阵特征值与稳定性 编辑:程序博客网 时间:2024/05/16 05:29
下面这个xml 文件,要找的路径是"WTTData"Component"ComponentData"ComponentData"ObjectQueryBuilder 找属性field为datastore的expression节点的value值.
<WTTData>
<Component SetName="Explorers" GroupName="JobExplorer">
<ComponentData Name="JobExplorer" Version="2.2.2098.0">
<ComponentData Name="HorzSplitter" Version="2.2.2098.0">
<Data Position="185" />
</ComponentData>
<ComponentData Name="VertSplitter" Version="2.2.2098.0">
<Data Position="150" />
</ComponentData>
<ComponentData Name="TabbedObjectTreeControl" Version="2.2.2098.0" Visible="True">
<Data SelectedTreeNodePath="$" CurrentTab="0" />
</ComponentData>
<ComponentData Name="ConfigurableListControl" Version="2.2.2098.0">
<Column Name="" Width="32" SortIndex="0" SortOrder="None" ColumnOrder="0" Default="True" />
<Column Name="Id" Width="70" SortIndex="-1" SortOrder="None" ColumnOrder="1" Default="True" />
<Column Name="Name" Width="352" SortIndex="-1" SortOrder="None" ColumnOrder="2" Default="True" />
<Column Name="AssignedToAlias" Width="80" SortIndex="-1" SortOrder="None" ColumnOrder="3" Default="True" />
<Column Name="FullPath" Width="190" SortIndex="-1" SortOrder="None" ColumnOrder="4" Default="True" />
<Column Name="LastUpdatedTime" Width="150" SortIndex="1" SortOrder="Descending" ColumnOrder="5" Default="True" />
</ComponentData>
<ComponentData Name="QueryBuilder" Version="2.2.2098.0" Visible="True">
<ObjectQueryBuilder ControlType="Microsoft.DistributedAutomation.UI.QueryBuilder" ControlAssembly="Microsoft.WTT.UI.Controls.ObjectControls" Assembly="WTTOMJobs" Type="Microsoft.DistributedAutomation.Jobs.Job" Title="Job Query">
<Expression Index="1" Static="True" AttachWith="" Mapping="DataStore" Field="DataStore" Operator="Equals" Value="WTTMobile1" />
<Expression AttachWith="And" Mapping="Id" Field="ID" Operator="Greater" Value="733454" />
<Expression AttachWith="And" Mapping="Id" Field="ID" Operator="Less" Value="733740" />
</ObjectQueryBuilder>
</ComponentData>
<ComponentData Name="ToolBar" Version="2.2.2098.0">
<Data DefinitionController="WTTMobile1" HideQueryBuilder="True" HideHierarchy="True" MaxItemsToDisplay="500" />
</ComponentData>
</ComponentData>
</Component>
<ActiveComponent SetName="Explorers" GroupName="JobExplorer" />
</WTTData>
实现代码是:
{
{
xDoc.Load(filename);
xElem1 = (
{
dataStoreString = xElem1.GetAttribute(
}
}
}
1,定义一个XmlDocument对象xDoc
2,通过XmlDocument来load需要读取的xml文件
3,通过XmlDocument的SelectSingleNode来找到节点,并把节点转换为XmlElement
4,XmlElement 可以对节点的属性进行操作
注意两点:
1,
其中xDoc.SelectSingleNode("descendant::Expression[@Field='DataStore']");SelectSingleNode参数里带有过滤条件,匹配公式是
descendant::nodename[@attribute='attributevalue']
2,xElem1 = (XmlElement)xDoc.SelectSingleNode("descendant::Expression[@Field='DataStore']");把XmlNode强制转为XmlElement,理由是XmlElement是XmlNode的子类,前者比后者提供更多好用的方法,比如属性的读和写.XmlNode除了可以转为XmlAttribute.
public static string getDataStore(string filename)
{
string dataStoreString =string.Empty;
if (!string.IsNullOrEmpty(filename))
{
XmlDocument xDoc =newXmlDocument();
XmlElement xElem1;
xElem1=(XmlElement)xDoc.SelectSingleNode("descendant::Expression[@Field='DataStore']");
if (xElem1 !=null)"Value");
}
return dataStoreString;
}
- C# 读取xml中特定节点的属性值 xmldocument方式 【有些乱,但有思路】
- C# 读取xml中特定节点的属性值 xmldocument方式
- c#读取xml中特定节点的值(实例)
- xml中如何读取一个子节点有特定值的节点
- C#之Xml文件特定节点的读取
- C#读取xml特定节点实例
- 通过XPathDocument、XmlDocument读取Xml文件中的节点值
- 创建xml文件,添加节点,读取xml文件中某属性的属性值
- C#中用XmlDocument对象获取XML文件中的节点值
- c#用XmlDocument读取指定节点
- C#中用XmlDocument对象获取带名命空间XML文件的节点值
- C#读取xml节点的值
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- C#操作Xml的两种方式 XPath XmlDocument XmlNodeList
- C#操作Xml的两种方式 XPath XmlDocument
- C#读取XML(全部或根据某个节点的属性值)
- Android学习路线(二十三)运用Fragment构建动态UI——Fragment间通讯
- CXF Spring开发WebService,基于SOAP和REST方式
- listview android:cacheColorHint,android:listSelector属性作用
- wsdl 语言
- java解压zip或者rar压缩文件
- C# 读取xml中特定节点的属性值 xmldocument方式 【有些乱,但有思路】
- linux后台开发具备能力集锦
- Android学习路线(二十二)运用Fragment构建动态UI——构建一个灵活的UI
- asoc 音频驱动学习笔记1
- ZOJ 2674 Strange Limit 欧拉定理
- linux中fork()函数详解(原创!!实例讲解)
- 发阖家幸福
- HDU 4950 Monster(公式)
- 法规和洗衣机