当前位置: 首页 > news >正文

XML运用于编程

XML文件内容如下

<?xml version="1.0" encoding="utf-8" ?>
<Tree>
  <parentNode name="风险问询">
    <childNode name="审核" step="1" dataUserRole="税务局干部" roleName="部门负责人"></childNode>
    <childNode name="审核" step="1" dataUserRole="部门负责人" roleName="分管局长"></childNode>
    <childNode name="审核" step="1" dataUserRole="分管局长|纪检组长" roleName="县税务局局长"></childNode>
    <childNode name="审核" step="1" dataUserRole="县税务局局长" roleName="纪检组长"></childNode>
  </parentNode>
  <parentNode name="自我监测">
    <childNode name="审核" step="1" dataUserRole="税务局干部" roleName="部门负责人"></childNode>
    <childNode name="审核" step="1" dataUserRole="部门负责人" roleName="分管局长"></childNode>
    <childNode name="审核" step="1" dataUserRole="分管局长|纪检组长" roleName="县税务局局长"></childNode>
    <childNode name="审核" step="1" dataUserRole="县税务局局长" roleName="纪检组长"></childNode>
  </parentNode>
  <parentNode name="监察意见">
    <childNode name="签发" step="1" dataUserRole="" roleName="监审室主任"></childNode>
    <childNode name="审核" step="2" dataUserRole="" roleName="纪检组长"></childNode>
  </parentNode>
  <parentNode name="组织监测">
    <childNode name="审核" step="1" dataUserRole="" roleName="监审室主任"></childNode>
  </parentNode>
  <parentNode name="信访举报">
    <childNode name="审核" step="1" dataUserRole="" roleName="监审室主任"></childNode>
  </parentNode>
  <parentNode name="事项监督申报">
    <childNode name="审核" step="1" dataUserRole="" roleName="部门管理员"></childNode>
  </parentNode>
  <parentNode name="红色预警">
    <childNode name="签发" step="0" dataUserRole="税务局干部|部门负责人" roleName="纪检组长"></childNode>
    <childNode name="审核" step="1" dataUserRole="税务局干部" roleName="部门负责人"></childNode>
    <childNode name="审核" step="1" dataUserRole="部门负责人" roleName="分管局长"></childNode>
    <childNode name="审核" step="2" dataUserRole="税务局干部|部门负责人" roleName="纪检组长"></childNode>
  </parentNode>
  <parentNode name="黄色预警">
    <childNode name="签发" step="0" dataUserRole="税务局干部|部门负责人" roleName="监审室主任"></childNode>
    <childNode name="审核" step="1" dataUserRole="税务局干部" roleName="部门负责人"></childNode>
    <childNode name="审核" step="1" dataUserRole="部门负责人" roleName="分管局长"></childNode>
  </parentNode>
  <!--填报步骤可控制,但填报的内容不可更改-->
<parentNode name="重大项目招标"> <childNode name="签发" step="1" dataUserRole="支队纪委参与监督人员" roleName="监审室主任"></childNode> <childNode name="审核" step="2" dataUserRole="项目概况填报人" roleName="部门负责人"></childNode> <childNode name="审核" step="3" dataUserRole="项目采购部门填报人" roleName="分管局长"></childNode> <childNode name="签发" step="4" dataUserRole="项目招标领导小组填报人" roleName="监审室主任"></childNode> <childNode name="审核" step="5" dataUserRole="招标小组组长" roleName="部门负责人"></childNode> <childNode name="审核" step="6" dataUserRole="财务部门填报人" roleName="分管局长"></childNode> <childNode name="审核" step="7" dataUserRole="项目审计部门支队领导" roleName="分管局长"></childNode> </parentNode> </Tree>

我们重点对重大项目招标来取流程内的datauserrole并存入List<string>中代码如下:



public static List<string> GetXMLPrejectBiding(string parentNode) { List<string> list = new List<string>(); XmlDocument xml = new XmlDocument(); xml.Load(HttpContext.Current.Server.MapPath("~/Flow.xml")); XmlNode root = xml.SelectSingleNode("Tree"); XmlNodeList rootchild = root.ChildNodes; foreach (XmlNode pa in rootchild) { XmlElement paxe =XmlElement(pa); //将节点转换成XmlElement类型,之后可以取该节点的属性和文本内容
这里注意用(XmlElement paxe =pa as XmlElement;
if(paxe==null){
continue;
}
) 这样能通过注释行否则报错
if (paxe.GetAttribute("name") == parentNode) { XmlNodeList xnl = pa.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; list.Add(xe.GetAttribute("dataUserRole"));//显示子节点点文本 } } } return list; }
用linq to xml 如下
 XDocument xml = XDocument.Load(HttpContext.Current.Server.MapPath("~/Flow.xml"));
var query =from c in xml.Descendants("Tree")
            let d=c.Element("parentNode").Attribute
            where d=parentNode
            from q in c.Descendants("parentNode")
            select q.Attribute("dataUserRole")

重点: XmlNode  XmlElement

 

 

转载于:https://www.cnblogs.com/akingyao/archive/2013/03/15/2961570.html

相关文章:

  • 水仙花数java(3-24)位数输入,都可以算出水仙花数
  • (理论篇)httpmoudle和httphandler一览
  • moosefs 测试
  • win7去快捷方式箭头
  • Oracle管理表空间(七)--Oracle表空间与数据文件脱机的区别
  • sqoop安装配置教程,以及从Oracle数据抽取数据的分析
  • IE6/7不读取CSS样式,或不能正常显示背景图片问题
  • ERP系统小悟
  • 分享:tmux 1.8 发布,Linux 终端复用器
  • optgroup 分类显示
  • 分享:ubuntu broadcom无线驱动安装
  • 有关网络安全方面的书籍(凯文·米特尼克作品)
  • WPF自定义控件 《动画》
  • Java classLoader【转】
  • linux系统时间修改及同步
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [case10]使用RSQL实现端到端的动态查询
  • 「面试题」如何实现一个圣杯布局?
  • ES6语法详解(一)
  • express如何解决request entity too large问题
  • java 多线程基础, 我觉得还是有必要看看的
  • js ES6 求数组的交集,并集,还有差集
  • Node + FFmpeg 实现Canvas动画导出视频
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 编写符合Python风格的对象
  • 程序员最讨厌的9句话,你可有补充?
  • 动态规划入门(以爬楼梯为例)
  • 诡异!React stopPropagation失灵
  • 开发基于以太坊智能合约的DApp
  • 那些年我们用过的显示性能指标
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​ssh免密码登录设置及问题总结
  • ###项目技术发展史
  • #WEB前端(HTML属性)
  • (Python) SOAP Web Service (HTTP POST)
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一)Java算法:二分查找
  • (转)IOS中获取各种文件的目录路径的方法
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core 成都线下面基会拉开序幕
  • .NET 表达式计算:Expression Evaluator
  • .net 验证控件和javaScript的冲突问题
  • .net6 webapi log4net完整配置使用流程
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET命令行(CLI)常用命令
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [100天算法】-实现 strStr()(day 52)
  • [Android View] 可绘制形状 (Shape Xml)
  • [AutoSar NVM] 存储架构
  • [AX]AX2012开发新特性-禁止表或者表字段
  • [Bada开发]初步入口函数介绍
  • [C/C++]数据结构 堆的详解