public class DynamicXml : DynamicObject, IEnumerable
{
private readonly List<XElement> _elements;
public DynamicXml(string text)
{
var doc = XDocument.Parse(text);
_elements = new List<XElement> { doc.Root };
}
protected DynamicXml(XElement element)
{
_elements = new List<XElement> { element };
}
protected DynamicXml(IEnumerable<XElement> elements)
{
_elements = new List<XElement>(elements);
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = null;
if (binder.Name == "Value")
result = _elements[0].Value;
else if (binder.Name == "Count")
result = _elements.Count;
else
{
C#DynamicXml动态读取操作XML(XML到Object的通用实现)
最新推荐文章于 2022-03-19 22:43:09 发布
本文介绍了如何使用C#创建一个名为DynamicXml的类,该类允许动态地读取和操作XML内容。通过实例化DynamicXml对象,可以方便地访问XML节点和属性。例如,对于XML文档中的`<books>`元素,可以使用`data.books.book[0].author`来获取第一个`<book>`元素的`<author>`内容。
摘要由CSDN通过智能技术生成