Exemple #1
0
        static public void SetValue(XmlElement parentEle, string itemNodeName, ItemsDataMode dataMode, string value)
        {
            XmlElement node = (XmlElement)parentEle.SelectSingleNode(itemNodeName);

            if (node == null)
            {
                node = parentEle.OwnerDocument.CreateElement(itemNodeName);
                parentEle.AppendChild(node);
            }

            switch (dataMode)
            {
            case ItemsDataMode.ValueProperty:
                node.SetAttribute("value", value);
                break;

            case ItemsDataMode.Text:
                node.InnerText = value;
                break;

            case ItemsDataMode.CData:
                RemoveAllChilds(node);
                XmlCDataSection cdata = parentEle.OwnerDocument.CreateCDataSection(value);
                node.AppendChild(cdata);
                break;

            default:
                throw new Exception("开发期错误。未知的ItemsDataMode:" + dataMode);
            }
        }
Exemple #2
0
        static public void SetGroupItems(XmlElement groupEle, string itemNodeName, ItemsDataMode dataMode, IEnumerable <string> values)
        {
            ///先清空
            RemoveAllChilds(groupEle);

            switch (dataMode)
            {
            case ItemsDataMode.ValueProperty:
                foreach (string value in values)
                {
                    XmlElement item = groupEle.OwnerDocument.CreateElement(itemNodeName);
                    item.SetAttribute("value", value);
                    groupEle.AppendChild(item);
                }
                break;

            case ItemsDataMode.Text:
                foreach (string value in values)
                {
                    XmlElement item = groupEle.OwnerDocument.CreateElement(itemNodeName);
                    item.InnerText = value;
                    groupEle.AppendChild(item);
                }
                break;

            case ItemsDataMode.CData:
                foreach (string value in values)
                {
                    XmlElement      item  = groupEle.OwnerDocument.CreateElement(itemNodeName);
                    XmlCDataSection cdata = groupEle.OwnerDocument.CreateCDataSection(value);
                    item.AppendChild(cdata);
                    groupEle.AppendChild(item);
                }
                break;

            default:
                throw new Exception("开发期错误。未知的ItemsDataMode:" + dataMode);
            }
        }
Exemple #3
0
        /// <summary>
        /// 通过父节点获取子节点的值。如:<option><partIdSeed>1</partIdSeed></option>
        /// </summary>
        /// <param name="parentEle">父节点。即例子里的:option节点</param>
        /// <param name="itemNodeName">子节点名。即例子里的"partIdSeed"</param>
        /// <param name="dataMode">数据存储模式。例子里是ItemsDataMode.Text</param>
        /// <returns></returns>
        static public string GetValue(XmlElement parentEle, string itemNodeName, ItemsDataMode dataMode)
        {
            XmlElement node = (XmlElement)parentEle.SelectSingleNode(itemNodeName);

            if (node == null)
            {
                return("");
            }
            switch (dataMode)
            {
            case ItemsDataMode.ValueProperty:
                return(node.GetAttribute("value"));

            case ItemsDataMode.Text:
                return(node.InnerText);

            case ItemsDataMode.CData:
                return(node.InnerText);

            default:
                throw new Exception("开发期错误。未知的ItemsDataMode:" + dataMode);
            }
        }
Exemple #4
0
        /// <summary>
        /// 从XmlElement里获取一组值。如:<groups><item value="a"></item><item value="B"></item></groups>
        /// </summary>
        /// <param name="groupEle">从此XmlElement里获取值。即上面的groups元素</param>
        /// <param name="itemNodeName">item的名字,即上面的"item"</param>
        /// <param name="dataMode">数据存储的类型。上面是ItemsDataMode.ValueProperty</param>
        /// <returns></returns>
        static public string[] GetGroupItems(XmlElement groupEle, string itemNodeName, ItemsDataMode dataMode)
        {
            XmlNodeList nodes = groupEle.SelectNodes(itemNodeName);

            string[] returnItems = new string[nodes.Count];

            switch (dataMode)
            {
            case ItemsDataMode.ValueProperty:
            {
                int i = 0;
                foreach (XmlNode node in nodes)
                {
                    returnItems[i] = node.Attributes["value"].Value;
                    i++;
                }
                break;
            }

            case ItemsDataMode.Text:
            {
                int i = 0;
                foreach (XmlNode node in nodes)
                {
                    returnItems[i] = node.InnerText;
                    i++;
                }
                break;
            }

            case ItemsDataMode.CData:
            {
                int i = 0;
                foreach (XmlNode node in nodes)
                {
                    returnItems[i] = node.InnerText;
                    i++;
                }
                break;
            }

            default:
                throw new Exception("开发期错误。未知的ItemsDataMode:" + dataMode);
            }

            return(returnItems);
        }