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); } }
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); } }
/// <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); } }
/// <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); }