资源简介
最近做项目,要用C#写,而且数据格式是那种节点套节点能把人套死的XML,看着都觉得晕,而且节点跳跃性很大,真心觉得单纯用环境自带的XMLDocument类完全达不到自己的需要,因为XML里面涉及到节点循环,循环里面又套循环,说到这,我已经不想吐槽了,foreach是个好东西,但是套太多绝对是麻烦,不如封装成一个类库,自己想要的功能都加进去(较之前写的那个增加了节点,注释节点,带有属性节点的封装,以及附加了测试例子,功能很强大,也可以自己动手添加自己需要的方法),好了,0分分享!!!!!!;
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.xml;
using System.IO;
using System.Configuration;
using System.Data.SqlClient;
using xmlOpera;
namespace xmlOpera
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
///
/// 根据xml 原本带的方法 一个个寻找节点
///
///
///
private void button1_Click(object sender EventArgs e)
{
xmlDocument doc = new xmlDocument();
string Path = Application.StartupPath+“\\ECG.xml“;//转义符 得多加个斜杠
try
{
doc.Load(Path);
xmlNode Root = doc.DocumentElement;//获得当前根节点
xmlNodeList NodeList = Root.ChildNodes; //所有节点 都是 以根点为集合 被包围的
xmlNodeList ChildNodesList = null;//局部 孩子节点集合 通用变量
xmlNodeList CNodeList = null;//局部 孩子节点结合 保存父节点下的孩子节点结合
xmlNode CNode = null;//局部 单子节点 通用变量
foreach (xmlNode xmlNode in NodeList)//所有的只要是 Root的孩子节点的操作都在这个 foreach 里面 解析
{
if (“recordTarget“.Equals(xmlNode.Name))//找到这个 recordTarget--病人信息 节点
{
ChildNodesList = xmlNode.ChildNodes;//得到这个节点的 孩子节点
foreach (xmlNode xmlNode_ in ChildNodesList)//再次遍历
{
if (“patientRole“.Equals(xmlNode_.Name))
{
//开始操作
ChildNodesList = xmlNode_.ChildNodes;
xmlNode Node = null;
Node = ChildNodesList[3];// 患者ID 节点
tb_ID.Text=Node.Attributes[“extension“].Value;
}
}//end foreach 寻找patientRole 节点
}//end if recordTarget 节点
if(“title“.Equals(xmlNode.Name))// title 节点 标注 检查报告类型
{
this.Text = xmlNode.InnerText;
}
if (“component“.Equals(xmlNode.Name))
{
xmlNode structuredBody = xmlNode.ChildNodes[0];//节点:structuredBody 父节点一定要保存 很重要
CNodeList = structuredBody.ChildNodes;
CNode = CNodeList[1];//注释节点 0 再下面一个节点 就是节点 :component 索引 :1 -- 文档中患者相关信息
ChildNodesList = CNode.ChildNodes;//component 子节点
CNode = ChildNodesList[0];//节点:Section
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1281 2016-09-23 16:48 C#操作xm
文件 345 2016-09-23 16:48 C#操作xm
文件 24922 2016-09-23 16:37 C#操作xm
文件 54 2016-09-23 16:37 C#操作xm
文件 54 2016-09-23 16:37 C#操作xm
文件 22528 2016-09-27 09:55 C#操作xm
文件 345 2016-09-23 16:48 C#操作xm
文件 44544 2016-09-27 09:55 C#操作xm
文件 11592 2016-09-27 09:55 C#操作xm
文件 345 2016-09-23 16:48 C#操作xm
文件 490 2010-03-17 22:39 C#操作xm
文件 28773 2016-09-27 09:55 C#操作xm
文件 14438 2016-09-27 09:55 C#操作xm
文件 14768 2016-09-26 17:03 C#操作xm
文件 5817 2016-09-26 17:03 C#操作xm
文件 12572 2016-09-23 16:48 C#操作xm
文件 6346 2016-09-27 09:55 C#操作xm
文件 348 2016-09-26 17:03 C#操作xm
文件 782 2016-09-26 17:03 C#操作xm
文件 151323 2016-09-23 16:48 C#操作xm
文件 0 2016-09-23 16:37 C#操作xm
文件 0 2016-09-23 16:37 C#操作xm
文件 0 2016-09-23 16:37 C#操作xm
文件 4608 2016-09-23 16:50 C#操作xm
文件 2004 2016-09-27 09:55 C#操作xm
文件 975 2016-09-23 16:37 C#操作xm
文件 2364 2016-09-23 16:37 C#操作xm
文件 22528 2016-09-27 09:55 C#操作xm
文件 180 2016-09-26 17:03 C#操作xm
文件 44544 2016-09-27 09:55 C#操作xm
............此处省略39个文件信息
- 上一篇:c#编写的桌面管理系统源代码
- 下一篇:C#插件框架源代码学习架构的好代码
评论
共有 条评论