从元素获取XML属性和值

库尔斯塔德

正在向我提供以下XML,但无法更改其结构:

<ReportSpec>
  <Report ReportName="ReportName1" FilterMode="Container" Destination="EmailToUser:LoggedInUser" Format="PDF" AlertSource="ALL" CriticalStatus="True">
    <Filter Students="ALL" />
  </Report>
  <Report ReportName="ReportName1" FilterMode="Container" Destination="EmailToUserGroup:UserAdmins" Format="PDF" AlertSource="ALL" CriticalStatus="False">
    <Filter TestScore="1234" />
  </Report>
  <Report ReportName="ReportName1" FilterMode="Container" Destination="Dir:\\net.path.com\reports" Format="PDF" AlertSource="Failing">
    <Filter Grade="ALL" />
  </Report>
  <Report ReportName="ReportName1" FilterMode="Container" Destination="EmailTo:[email protected],[email protected]" Format="PDF" AlertSource="Failing">
    <Filter Course="Programming" />
  </Report>
</ReportSpec>

我正在使用C#(.NET 4.5),并且需要选择<FILTER>元素的属性名称和值,因为它们稍后将在代码中成为应用程序逻辑的一部分(也就是说,我想TestScore="1234"作为一个完整的字符串进行收集,并且稍后使用)。我目前正在使用XMLSerializerStreamReader加载XML文档(但是如果需要,我愿意更改我的方法)。我已经PASTE SPECIAL --> XML to Classes在Visual Studio 2013中完成了,但是创建的Filters类不允许我对foreach元素执行可以做到吗,如何做到?

塞古鲁蒂

您可以使用XmlDocument类

using System;
using System.IO;
using System.Xml;

namespace ConsoleApplication1 {
class Program {
    static void Main(string[] args) {
        var file = File.ReadAllText("c:\\temp\\file.xml");
        var xmlFile = new XmlDocument();
        xmlFile.LoadXml(file);

        var filterElements = xmlFile.GetElementsByTagName("Filter");
        foreach (XmlNode filterNode in filterElements) {
            var filterName = filterNode.Attributes[0].Name;
            var filterText = filterNode.Attributes[0].InnerXml;
            var destination = filterNode.ParentNode.Attributes["Destination"].InnerText;
            var message = string.Format("the destination {0} will filter {1} by {2}", destination, filterName, filterText);
            Console.WriteLine(message);
        }
        Console.ReadKey();
    }
}

输出将是:

目的地EmailToUser:LoggedInUser将按ALL过滤学生

目标EmailToUserGroup:UserAdmins将通过1234过滤TestScore

目的地Dir:\ net.path.com \ reports将按ALL过滤Grade

目的地EmailTo:a @ b.com,joe @ schmoe.com将通过编程过滤课程

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xml Linq查询(通过属性和属性值获取元素)

来自分类Dev

从sql中的xml获取属性和元素值

来自分类Dev

PHP:通过属性获取XML元素的值

来自分类Dev

AWK从XML元素获取属性值

来自分类Dev

使用属性值获取xml元素

来自分类Dev

使用TSQL和XQuery解析XML-获取给定元素值的属性值

来自分类Dev

如何访问XML nth元素的属性值和属性值

来自分类Dev

XML:如何通过属性值获取元素-Python 2.7和minidom

来自分类Dev

使用SQL XPATH查询获取XML元素名称和属性值

来自分类Dev

XML:如何通过属性值获取元素-Python 2.7和minidom

来自分类Dev

如何从Java中的XML获取父元素属性和子值?

来自分类Dev

数组的Echo XML元素值和属性值

来自分类Dev

SQL Server:如何获取指定属性的XML元素的值?

来自分类Dev

groovy / xml-获取具有较大属性值的元素

来自分类Dev

使用PowerShell解析XML:使用属性获取元素的值

来自分类Dev

使用PHP从XML文件获取RDF元素的属性值

来自分类Dev

在XmlDocument中获取具有特定属性值的xml元素

来自分类Dev

获取重复元素名称的 XML 中的属性值

来自分类Dev

Android如何解析XML获取属性和元素

来自分类Dev

如何从SQL Server中的xml数据中获取带有条件的子元素和属性值?

来自分类Dev

Golang:解析组的XML元素值和属性

来自分类Dev

查找名为“标签”的元素和名为“标题”的属性的XML值

来自分类Dev

解析xml时无法获取属性的名称和值

来自分类Dev

获取多个元素的属性值

来自分类Dev

通过属性值获取元素

来自分类Dev

获取元素属性列表(值等)

来自分类Dev

获取元素的显示属性值

来自分类Dev

通过元素和另一个属性值获取 SimpleXML 对象中的属性值

来自分类Dev

sed获取xml属性值

Related 相关文章

热门标签

归档