[C#]XML依名稱 取得 節點「 InnerText」 與「屬性值」
實作:
需求:取得下圖「節點b」的InnerText,「節點c」的InnerText與屬性(parameter)的value。
1.建立一個 XMLHelper
public static class XMLHelper
{
/// <summary>
/// 載入XML檔案
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static XmlDocument Load(string fileName)
{
XmlDocument doc = new XmlDocument();
if(!string.IsNullOrWhiteSpace(fileName))
{
doc.Load(fileName);
}
return doc;
}
/// <summary>
/// 依名稱取得節點
/// </summary>
/// <param name="node"></param>
/// <param name="tagName"></param>
/// <returns></returns>
public static XmlNode GetElementsByTagName(XmlNode node,string tagName)
{
if(node==null||string.IsNullOrWhiteSpace(tagName))
{
return null;
}
var childNodes = node.ChildNodes;
for(var i=0;i< childNodes.Count;i++)
{
if (childNodes[i].Name == tagName)
{
return childNodes[i];
}
}
return null;
}
/// <summary>
/// 依名稱取得屬性
/// </summary>
/// <param name="collection"></param>
/// <param name="name"></param>
/// <returns></returns>
public static XmlAttribute GetXmlAttributeByName(XmlAttributeCollection collection, string name)
{
if (collection == null || string.IsNullOrWhiteSpace(name))
{
return null;
}
for (var i = 0; i < collection.Count; i++)
{
if (collection[i].Name == name)
{
return collection[i];
}
}
return null;
}
}
留言
張貼留言