C# XELEMENT 解析xml文件(字符串)

摘要:
XElement解析xml字符串,或者xml文件方法xml文件1˂?

XElement 解析xml字符串,或者xml文件方法

xml文件

1 <?xml version="1.0" encoding="utf-8"?>
2 <Request>
3   <Header>
4     <SourceSystem>02</SourceSystem>
5     <MessageID>34</MessageID>
6   </Header>
7   <Body>
8     <AddOrdersRt>
9       <PATPatientID>0001235865</PATPatientID>
10       <PATPatientIDS>1235871</PATPatientIDS>
11       <PAADMVisitNumber>538477</PAADMVisitNumber>
12       <PAADMEncounterTypeCode>I</PAADMEncounterTypeCode>
13       <OEORIInfoList>
14         <OEORIInfo>
15           <BusinessFieldCode>00002</BusinessFieldCode>
16           <HospitalCode>SDY</HospitalCode>
17           <OEORIOrderItemID>527827||374</OEORIOrderItemID>
18           <OEORIOEORIDR/>
19           <OEORIARCItmMastCode>310701001c</OEORIARCItmMastCode>
20           <OEORIARCItmMastDesc>常规心电图检查(十二通道)</OEORIARCItmMastDesc>
21           <OEORIPriorityCode>NORM</OEORIPriorityCode>
22           <OEORIPriorityDesc>临时医嘱</OEORIPriorityDesc>
23           <OEORIStatusCode>V</OEORIStatusCode>
24           <OEORIStatusDesc>核实</OEORIStatusDesc>
25           <OEORIClass>检查</OEORIClass>
26           <OEORIClassDesc>检查</OEORIClassDesc>
27           <OEORIPrescNo/>
28           <OEORIDoseFormsCode/>
29           <OEORIDoseFormsDesc/>
30           <OEORIDoseQty/>
31           <OEORIDoseUnitCode/>
32           <OEORIDoseUnitDesc/>
33           <OEORIFreqCode/>
34           <OEORIFreqDesc/>
35           <OEORIInstrCode/>
36           <OEORIInstrDesc/>
37           <OEORIDurationCode/>
38           <OEORIDurationDesc/>
39           <OEORIOrderQty>1</OEORIOrderQty>
40           <OEORIResultStatusCode>A</OEORIResultStatusCode>
41           <OEORIResultStatusDesc>Awaiting</OEORIResultStatusDesc>
42           <OEORIRemarks/>
43           <OEORIEnterDocCode>101680</OEORIEnterDocCode>
44           <OEORIEnterDocDesc>许晖</OEORIEnterDocDesc>
45           <OEORIEnterDate>2019-12-26</OEORIEnterDate>
46           <OEORIEnterTime>15:14:09</OEORIEnterTime>
47           <OEORIEnterDeptCode>12802</OEORIEnterDeptCode>
48           <OEORIEnterDeptDesc>神经外科</OEORIEnterDeptDesc>
49           <OEORIExecDeptCode>15001</OEORIExecDeptCode>
50           <OEORIExecDeptDesc>心电图室</OEORIExecDeptDesc>
51           <OEORIRequireExecDate>2019-12-26</OEORIRequireExecDate>
52           <OEORIRequireExecTime>15:14:00</OEORIRequireExecTime>
53           <OEORIStopDate/>
54           <OEORIStopTime/>
55           <OEORIStopDocCode/>
56           <OEORIStopDocDesc/>
57           <OEORIIsSkinTest/>
58           <OEORIISEmergency>Y</OEORIISEmergency>
59           <OEORIParentOrderID/>
60           <OEORISpecimenID/>
61           <OEORISpecimenCode/>
62           <MaterialBarcode/>
63           <OEORIPrice>21</OEORIPrice>
64           <OEORISpecification/>
65           <AppointmentResources>动态心电图</AppointmentResources>
66           <AppointmentNo>1</AppointmentNo>
67           <AppointmentDTime>2019-12-27 08:00:00</AppointmentDTime>
68         </OEORIInfo>
69       </OEORIInfoList>
70       <PAADMAdmWardCode>12803</PAADMAdmWardCode>
71       <PAADMAdmWardDesc>神经外科病区</PAADMAdmWardDesc>
72       <PAADMCurBedNo>46</PAADMCurBedNo>
73       <Diagnoses>颅底骨折^顶骨骨折^颞骨骨折^脑挫伤^创伤性脑疝^创伤性闭合性硬膜外血肿</Diagnoses>
74       <UpdateUserCode>demo</UpdateUserCode>
75       <UpdateUserDesc>demo</UpdateUserDesc>
76       <UpdateDate>2019-12-26</UpdateDate>
77       <UpdateTime>15:30:30</UpdateTime>
78     </AddOrdersRt>
79   </Body>
80 </Request>
C#程序解析
1
classProgram 2 { 3 static void Main(string[] args) 4 { 5 string path = @"C:UsersKevinDesktopookinfo.xml"; 6 7 //XElement xe = XElement.Parse(xmlStr); 解析xml字串传 8 XElement xe =XElement.Load(path); 9 10 /*预约*/ 11 12 EcgBook ebook = newEcgBook(); 13 14 var Header = xe.Elements("Header"); 15 var addOrdersRt = xe.Elements("Body").Elements("AddOrdersRt"); 16 var orderInfo = xe.Elements("Body").Elements("AddOrdersRt").Elements("OEORIInfoList").Elements("OEORIInfo"); 17 18 //遍历header节点 19 foreach (XElement item inHeader) 20 { 21 ebook.sourceSystem = GetElementValue(item, "SourceSystem"); 22 ebook.messageID = GetElementValue(item, "MessageID"); 23 } 24 25 //遍历body/addOrdersRt节点 26 foreach (XElement item inaddOrdersRt) 27 { 28 ebook.patientID = GetElementValue(item, "PATPatientID"); 29 ebook.visitNumber = GetElementValue(item, "PAADMVisitNumber"); 30 ebook.visitType = GetElementValue(item, "PAADMEncounterTypeCode"); 31 ebook.clinicDiag = GetElementValue(item, "Diagnoses"); 32 ebook.updateUserCode = GetElementValue(item, "UpdateUserCode"); 33 ebook.updateUserDesc = GetElementValue(item, "UpdateUserDesc"); 34 ebook.updateDate = GetElementValue(item, "UpdateDate"); 35 ebook.updateTime = GetElementValue(item, "UpdateTime"); 36 } 37 38 foreach (XElement item inorderInfo) 39 { 40 ebook.orderItemID = GetElementValue(item, "OEORIOrderItemID"); 41 ebook.orderItemMastCode = GetElementValue(item, "OEORIARCItmMastCode"); 42 ebook.orderItemMastDesc = GetElementValue(item, "OEORIARCItmMastDesc"); 43 44 ebook.orderStatusCode = GetElementValue(item, "OEORIStatusCode"); 45 ebook.orderStatusDesc = GetElementValue(item, "OEORIStatusDesc"); 46 47 ebook.orderEnterDocCode = GetElementValue(item, "OEORIEnterDocCode"); 48 ebook.orderEnterDocDesc = GetElementValue(item, "OEORIEnterDocDesc"); 49 ebook.orderEnterDeptCode = GetElementValue(item, "OEORIEnterDeptCode"); 50 ebook.orderEnterDeptDesc = GetElementValue(item, "OEORIEnterDeptDesc"); 51 ebook.orderExecDeptCode = GetElementValue(item, "OEORIExecDeptCode"); 52 ebook.orderExecDeptDesc = GetElementValue(item, "OEORIExecDeptDesc"); 53 ebook.orderExecDate = GetElementValue(item, "OEORIRequireExecDate"); 54 ebook.orderExecTime = GetElementValue(item, "OEORIRequireExecTime"); 55 56 ebook.orderTypeCode = GetElementValue(item, "orderTypeCode"); 57 ebook.orderTypeDesc = GetElementValue(item, "orderTypeDesc"); 58 ebook.orderClass = GetElementValue(item, "orderClass"); 59 ebook.orderClassDesc = GetElementValue(item, "orderClassDesc"); 60 61 } 62 63 Console.WriteLine(“成功”); 64 Console.ReadKey(); 65 }
public static string GetElementValue(XElement item, string nodeName)
        {
            if (string.IsNullOrEmpty(nodeName)) return "";
            return item.Element(nodeName) == null ? "" : item.Element(nodeName).Value.ToString();
        }

备注:XELEMENT对象,实例化之后,xe直接定位到根节点,查找元素是,从根节点下一级节点开始查找节点。

免责声明:文章转载自《C# XELEMENT 解析xml文件(字符串)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LD_LIBRARY_PATH【原创】Kafka接受发送消息对象Object基础版下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

XML和JSON数据格式

目录 XML DTD(文档类型定义) DTD实体 JSON 使用python解析JSON数据 XML和JSON的区别  XML的优缺点 JSON的优缺点 XML和JSON都是web存储和传输过程中数据的格式,其中JSON 使用比较广泛,主要用来前后端交互数据。 XML XML(Extensible Markup Language)扩展标记语言 ,是一种常...

【转】Android Drawable Resource学习(十一)、RotateDrawable

对另一个drawable资源,基于当前的level,进行旋转的drawable。 文件位置: res/drawable/filename.xml文件名即资源名 编译数据类型: 指向 RotateDrawable的指针。 资源引用: In Java: R.drawable.filenameIn XML: @[package:]drawable/filen...

自定义Struts2实现

一:struts2运行机制: Tomcat一启动,一些信息就已经加载完成,例如StrutsPrepareAndExecuteFilter加载的那些strut.xml以及Action的class类文件 1)客户端在浏览器中输入一个url地址,例如http://localhost:8080/user!findUser.do。2)这个url请求通过http协议发...

XML系列之--解析电文格式的XML(二)

      上一节介绍了XML的结构以及如何创建。讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递。当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点的形式填充至此XML。无论如何,都离不开对XML的解析,XML有一般的,同样也有二般的,这一节就来介绍如何对这些XML进行解析。 1. 普通XML...

使用DTD验证XML文档

这本来应该不是一个困难的事情。但是,比较“无奈”的地方在于,必须在待验证的XML文档内部声明一个“DOCTYPE”引用DTD文件才可以验证。所以,更麻烦的问题在于需要为没有声明这个DOCTYPE的XML文档添加上这个声明。我还没有找到更好的办法。说明一下Context,需要执行此操作的是一个ASP.NET WebForm,XML文档来自于客户端上传的文件,...

C#探秘系列(七):XML文件操作(一)

XML 是可扩展标记语言(Extensible Markup Language)的缩写,其中的 标记(markup)是关键部分。你可以创建内容,然后使用限定标记标记它,从而使每个单词、短语或块成为可识别、可分类的信息。因而在C#中,对xml文件的操作尤为重要。本博客着力于在C#中如何对xml文件实施诸如创建、搜索、序列化和反序列化等操作,默认你已有一定的...