读取XML空模版文件,向模版中加入值,返回字符串
/// <summary>
/// 读取XML字符串,获得某个节点中的值
/// </summary>
/// <param name="strName">节点名称</param>
/// <returns>节点值</returns>
public static List<string> GetListXml(string[] strName, string reciveStr)
{
List<string> strValue = new List<string>();
XmlTextReader reader = new XmlTextReader(reciveStr, XmlNodeType.Document, null);
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
for (int i = 0; i < strName.Length; i++)
{
if (reader.Name == strName[i].ToString())
{
reader.Read();
if (XmlNodeType.Text == reader.NodeType)
{
strValue.Add(reader.Value);
}
}
}
}
}
return strValue;
}
/// <summary>
/// 读取XML文件模版,将节点值增加到XML文件中,返回XML字符串
/// </summary>
/// <param name="Xml_TXValue">节点下的值</param>
/// <param name="strPath">XML文件模版路径</param>
/// <returns>XML字符串</returns>
public static string GetStrXML(string[] Xml_TXValue, string strPath)
{
PriCount = 0;
XmlDocument xd = new XmlDocument();//定义一个xmldocument对象
string xmlpath = GetXmlFullPath(strPath);//加载xml文件
xd.Load(@xmlpath);
XmlElement tree = xd.DocumentElement;
SetNodes(tree.ChildNodes, Xml_TXValue);
return xd.InnerXml;
}
private static void SetNodes(XmlNodeList node,string [] XmlValue)
{
for (int i = 0; i < node.Count; i++)//对根子节点的所有子节点进行循环
{
if (node[i].HasChildNodes)//判断是否还有子节点
{
SetNodes(node[i].ChildNodes, XmlValue);
}
else
node[i].InnerText = XmlValue[PriCount].ToString();
PriCount++;
}
}
private static string GetXmlFullPath(string strPath)
{
//如果路径中含有:符号,则认定为传入的是完整路径
if (strPath.IndexOf(":") > 0)
{
return strPath;
}
else
{
//返回完整路径
return System.Web.HttpContext.Current.Server.MapPath(strPath);
}
}
}