.net4 dynamic parse xml
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.Dynamic; namespace DynamicReadXml
{
public static class ExpandoXML
{
public static dynamic AsExpando(this XDocument xDocument)
{
return CreateExpando(xDocument.Root);
} private static dynamic CreateExpando(XElement element)
{
var result = new ExpandoObject() as IDictionary<string, object>;
if (element.Elements().Any(e => e.HasElements))
{
var list = new List<ExpandoObject>();
result.Add(element.Name.ToString(), list);
foreach (var childElement in element.Elements())
{
list.Add(CreateExpando(childElement));
}
}
else
{
foreach (var leafElement in element.Elements())
{
result.Add(leafElement.Name.ToString(), leafElement.Value);
}
}
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq; namespace DynamicReadXml
{
class Program
{
static void Main(string[] args)
{
var doc = XDocument.Load("employee.xml");
var result = doc.AsExpando();
foreach (var employee in result.Employees)
{
Console.WriteLine(employee.FirstName);
}
Console.ReadKey();
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<Employees>
<Employee>
<FirstName>DebugLZQ1</FirstName>
</Employee>
<Employee>
<FirstName>DebugLZQ2</FirstName>
</Employee>
<Employee>
<FirstName>DebugLZQ3</FirstName>
</Employee>
<Employee>
<FirstName>DebugLZQ4</FirstName>
</Employee>
<Employee>
<FirstName>DebugLZQ5</FirstName>
</Employee>
<Employee>
<FirstName>DebugLZQ6</FirstName>
</Employee>
</Employees>
.net4 dynamic parse xml的更多相关文章
- Parse xml/json[xpath/jpath]
import groovy.util.XmlSlurper import groovy.util.XmlParser import com.eviware.soapui.support.GroovyU ...
- [Android] Android Build 时报错: java.io.IOException: Could not parse XML from android/accounts/annotations.xml
Android构建时报错: app:lintVitalRelease[Fatal Error] :3:214: 与元素类型 “item” 相关联的 “name” 属性值不能包含 ‘<’ 字符. ...
- python parse xml using DOM
demo: import xml.dom.minidom dom=xml.dom.minidom.parse('sample.xml')root = dom.documentElementcc=dom ...
- 【RF库XML测试】parse xml
Name:Parse XmlSource:XML <test library>Arguments:[ source | keep_clark_notation=False ]Parses ...
- 递归方式 DOM 解析(parse) XML
friends.xml <span style="font-size:16px;"><?xml version="1.0" encoding= ...
- parse XML & JSON & js
parse XML & JSON & js how to parse xml data into json in js? https://stackoverflow.com/quest ...
- parse XML & js
parse XML & js how to parse xml data in js? https://stackoverflow.com/questions/17604071/parse-x ...
- idea报错。Error:Failed to load project configuration: cannot parse xml file E:\project\.idea\workspace.xml: Error on line 1: 前言中不允许有内容。
因为电脑卡死强制重启电脑后打开idea,进行junit单元测试报错: idea报错.Error:Failed to load project configuration: cannot parse x ...
- (C#) Parse xml 时, 返回的node值总是null。
网上查了一下,原因在于要parse的Xml文件本身包含了一些namespace,这些需要被添加进去. http://msdn.microsoft.com/zh-cn/library/system.xm ...
随机推荐
- Problem A: 自定义函数strcomp(),实现两个字符串的比较
#include<stdio.h> int strcmp(char *str1,char *str2) { if(str1!=NULL&&str2!=NULL) { whi ...
- 最小生成树之Prim算法--蓝白点思想
Prim算法: 以前一直不是很明白,Prim算法,今天就来终结一下. Prim算法采用与Dijkstra.Bellman-Ford算法一样的“蓝白点”思想:白点代表已经进入最小生成树的点,蓝点代表未进 ...
- codevs 1345 饥饿的奶牛
1345 饥饿的奶牛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description John养了若干奶牛,每天晚上奶牛都要进食.由于条件比较 ...
- WebService基于SoapHeader实现安全认证(二)
支持通过Http请求方法调用webservice,同时支持SoapHeader验证. using Globalegrow.Common; using Globalegrow.Model; using ...
- Virtualbox+ubuntu设置共享文件夹
转:http://www.juwends.com/tech/unix_series/virtualbox-ubuntu-sharefolder.html 1. 进入系统,安装增强功能,安装完关闭系统. ...
- 常用 U-boot命令详解
转:http://www.360doc.com/content/10/0827/13/496343_49168699.shtml 获取帮助环境变量与相关指令U-boot的使用网络命令Nand Flas ...
- 将具有特殊class名img标签替换成[img][/img]标签--javascript正则表达式实践
在项目中,可能有时候需要将一些特殊的东西加一个特别的属性,或者一个特殊的Class.如下: <!-- 第一种写法 --> <img src="abc.jpg" f ...
- 纯CSS实现文字一行居中,多行左对齐的方法
其实这种需求还是蛮常见的,主要用于产品列表页面,用于产品图片下面,显示产品的名称. 想要实现的效果为: 未知文字长度,当文字长度小于盒子宽度,也就是一行时,文字居中. 当文字长度大于盒子的宽度,会自动 ...
- Javascript code for soft keyboard
<style> BODY { SCROLLBAR-FACE-COLOR: #f0f0f6; FONT-SIZE: 9pt; BACKGROUND-ATTACHMENT: f ...
- Activex打包于发布完整版---微软证书制作
众所周知,Activex组件没有进行有效的签名,在IE上无法安装的,除非你让用户手工开启“接收任何未签名的ActiveX”,这个很明显不现实.而组件签名需要证书,证书从哪里来,你可以选择付1000到3 ...