2010-06-03 62 views
2

如何通過xml文件中的標籤名稱找到值?使用C#.net 2.0通過xml中的標籤名稱查找值

我的xmldocument中只有10個不同的節點。

我不想寫xpath。我認爲有一個自動查找屬性。

回答

0

我已經解決了我的問題與此scneirao:

XmlNodeList中NL = xdoc.GetElementsByTagName( 「客戶id」); sb.Append(NL [0] .InnerXml);

0

不記得確切的語法,但寫了一個Xpath查詢,然後用XPathNavigator.Select找到它。

編輯:請記住,我認爲這是類似//@tagname,所以如果你這樣做XPathNavigator.Select("//@tagname")我認爲它會工作。假設帶標籤的意思是一個屬性,如果你正在尋找元素,它應該是//tagname

0

看到這個完整的函數來獲取節點值以及屬性值從XML文件...

public string GetXmlNodeValue(string xmlfilePath, string TagName, string Attribute) 
{ 
    XmlDocument objXML = new XmlDocument(); 
    bool IsNodeValuefound = false; 
    string Value = string.Empty; 
    try 
    { 
     if (File.Exists(xmlfilePath)) 
     { 
      objXML.Load(xmlfilePath); 

      XmlNode xNode = objXML.DocumentElement.FirstChild; 
      while (xNode != null) 
      { 
       if (string.Compare(xNode.Name, TagName, true) == 0) 
       { 
        if (!string.IsNullOrEmpty(Attribute)) 
        { 
         if (xNode.Attributes.GetNamedItem(Attribute) != null) 
         { 
          IsNodeValuefound = true; 
          Value = xNode.Attributes.GetNamedItem(Attribute).Value; 
         } 
        } 
        else 
        { 
         IsNodeValuefound = true; 
         Value = xNode.InnerText.Trim(); 
        } 
       } 
       xNode = xNode.NextSibling; 
      } 
     } 
     if (IsNodeValuefound) 
      return Value; 
     else 
      return string.Empty; 
    } 
    catch (XmlException xmlEx) 
    { 
     throw xmlEx; 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    finally 
    { 
     objXML = null; 
    } 
}  
+0

謝謝,但我不想使用大量的代碼行。就像GetElementByID,並達到它的價值 – Jack 2010-06-03 12:54:54

+0

如果解決你的問題..請標記爲答案。 – Harendra 2010-06-03 13:05:15

0

簡單的例子:

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.LoadXml(someRawData); 
XmlNodeList yourNodes = xmlDoc.GetElementsByTagName("YourTagName"); 

然後你就可以通過yourNodes迭代和所採用的值。