2013-04-17 86 views
0

我是新的C#和我在想,如果有可能做到這一點:閱讀相同的元素,但不同的值

我有相同名稱但不同值的多個元素,我想他們比較單接一個。

示例:(本地)file.txt散列(URL)file.text散列。

我嘗試了一些代碼,但我找不到/創建任何好東西。這是我試過的:

XmlDocument doc = new XmlDocument(); 
doc.Load("sample.xml"); 
XmlElement root = doc.DocumentElement; 
XmlNodeList nodes = root.SelectNodes("FileName"); 
foreach (XmlNode node in nodes) 
{ 
    MessageBox.Show(node.ToString()); 
} 

大約有13,000條XML記錄。

我有這樣的XML:

<File FileName="file.txt" FileHash="1C395F6D2AA729A607E69DCA73F8205CEFD26AA4" FileSize="2337488" /> 
<File FileName="file2.txt" FileHash="B313285D73CA635EB76B8082737BDCF82481DCD0" FileSize="640000" /> 
<File FileName="file3.txt" FileHash="2D797F6840FB00D86B560290DD0A2A76E3FA90D8" FileSize="157" /> 
<File FileName="file4.txt" FileHash="D7AC7873B2A00B27451E485C65BF8562237A2562" FileSize="4702208" /> 
<File FileName="file5.txt" FileHash="8D89AC439D8FD44C9D9EF57D27A160BDB056D63D" FileSize="1052" /> 
+0

您可以發佈T的例子他XML? – David

+0

您的XML無效。你只能在根上有一個元素。如果你用' ...'包圍整個事物,那麼它可能是好的。 –

+0

是的它在開始時有,最後是。 –

回答

0

我仍然不知道我理解的「比較」你現在要做的,但下面應該讓你在訪問文件元素屬性開始你「重新感興趣的

using System.Xml; 
using System.IO; 
using System.Text; 
using System; 

public class Example 
{ 
    public static void Main() 
    { 
     XmlDocument xmlDoc= new XmlDocument(); 

     try { 
      xmlDoc.Load("files.xml"); 
     }catch(System.Xml.XmlException e){ 
      Console.WriteLine(e); 
     } 

     XmlNodeList defs = xmlDoc.GetElementsByTagName("File"); 

     for (int i = 0; i < defs.Count; i++) 
     { 
      string fn = defs[i].Attributes["FileName"].Value; 
      string fh = defs[i].Attributes["FileHash"].Value; 
      Console.WriteLine("File: " + fn + "\tHash: " + fh); 
     } 
    } 
} 
+0

非常感謝,現在這個工作。現在我只需要找出如何比較它們。 –

+0

@RebecaRdi太棒了!很高興幫助。當你有機會的時候請給我解決方案。 – David

+0

@RebecaRdi如果你發佈了一些你想要比較的更多細節,你也可以得到一些幫助。 – David

0

你必須拉出來的屬性的節點的

MessageBox.Show(node.Attributes["FileName"].Value); 
相關問題