username@email.com
2025-05-21 a980cd04341d71216e0f59bd4b7327fe9fc50032
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
 
namespace CY.Infrastructure.XML
{
    /// <summary>
    /// XmlNode访问器接口
    /// </summary>
    interface IXmlNodeVisitor
    {
 
        /// <summary>
        /// 设置当前访问器结点
        /// </summary>
        /// <param name="__xmlNode">当前要访问的节点信息</param>
        void SetNode(XmlNode __xmlNode);
 
 
        /// <summary>
        /// 返回当前访问器所用结点信息
        /// </summary>
        /// <param name="__nodeName"></param>
        /// <returns></returns>
        XmlNode GetNode(string __nodeName);
 
 
        /// <summary>
        /// 索引器属性
        /// </summary>
        /// <param name="__nodeName">节点名称</param>
        /// <returns></returns>
        string this[string __nodeName] { get; set; }
    }
 
 
    /// <summary>
    /// 属性节点Value访问器类
    /// </summary>
    public class XmlNodeAttributeValueVisitor : IXmlNodeVisitor
    {
        private XmlNode xmlNode;
 
        public XmlNodeAttributeValueVisitor()
        { }
 
 
        /// <summary>
        /// 定义索引器
        /// </summary>
        /// <param name="nodename"></param>
        /// <returns></returns>
        public string this[string __nodeName]
        {
            get
            {
                return xmlNode.Attributes[__nodeName].Value;
            }
            set
            {
                xmlNode.Attributes[__nodeName].Value = value;
            }
        }
 
        /// <summary>
        /// 设置当前访问器结点
        /// </summary>
        /// <param name="__xmlNode">当前要访问的节点信息</param>
        public void SetNode(XmlNode __xmlNode)
        {
            xmlNode = __xmlNode;
        }
 
        /// <summary>
        /// 返回当前访问器所用结点信息
        /// </summary>
        /// <param name="__nodeName">节点名称</param>
        /// <returns></returns>
        public XmlNode GetNode(string __nodeName)
        {
            return xmlNode.SelectSingleNode(__nodeName);
        }
    }
 
 
 
    /// <summary>
    /// Select节点InnerText访问器类
    /// </summary>
    public class XmlNodeInnerTextVisitor : IXmlNodeVisitor
    {
        private XmlNode xmlNode;
 
        public XmlNodeInnerTextVisitor()
        { }
 
 
        /// <summary>
        /// 定义索引器
        /// </summary>
        /// <param name="nodename"></param>
        /// <returns></returns>
        public string this[string __nodeName]
        {
            get
            {
                return xmlNode.SelectSingleNode(__nodeName).InnerText;
            }
            set
            {
                xmlNode.SelectSingleNode(__nodeName).InnerText = value;
            }
        }
 
        /// <summary>
        /// 设置当前访问器结点
        /// </summary>
        /// <param name="__xmlNode">当前要访问的节点信息</param>
        public void SetNode(XmlNode __xmlNode)
        {
            xmlNode = __xmlNode;
        }
 
        /// <summary>
        /// 返回当前访问器所用结点信息
        /// </summary>
        /// <param name="__nodeName">节点名称</param>
        /// <returns></returns>
        public XmlNode GetNode(string __nodeName)
        {
            return xmlNode.SelectSingleNode(__nodeName);
        }
    }
}