我解析一個xml文檔,我需要找出gid(一個屬性)值(3810)。基於SelectSingleNode()
。我發現找到屬性名稱和它的值並不容易。如何使用SelectSingleNode獲取屬性值?
我可以使用這種方法,還是必須切換到另一種方式。
附加是我的代碼。
如何使用book
obj獲取gid
的屬性值3810
。謝謝。
我的test.xml文件,如下
<?xml version="1.0" ?>
<root>
<VersionInfo date="2007-11-28" version="1.0.0.2" />
<Attributes>
<AttrDir name="EFEM" DirID="1">
<AttrDir name="Aligner" DirID="2">
<AttrDir name="SequenceID" DirID="3">
<AttrObj text="Slot01" gid="3810" unit="" scale="1" />
<AttrObjCount value="1" />
</AttrDir>
</AttrDir>
</AttrDir>
</Attributes>
</root>
我寫的test.cs中,如下
public class Sample
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("test.xml");
XmlNode book;
XmlNode root = doc.DocumentElement;
book = root.SelectSingleNode("Attributes[AttrDir[@name='EFEM']/AttrDir[@name='Aligner']/AttrDir[@name='SequenceID']/AttrObj[@text='Slot01']]");
Console.WriteLine("Display the modified XML document....");
doc.Save(Console.Out);
}
}
[更新06/10/2010]
的XML文件是一個複雜的文件。包括數以千計的gid。但是對於每個Xpath,gid都是獨一無二的。
我將xml文件加載到TreeView控件。
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
。當發生treeView1_AfterSelect
事件時,e.Node.FullPath
將作爲字符串值返回。我解析字符串值
e.Node.FullPath
。然後我得到了XPath以上的成員。然後我試圖找出哪個gid項目被選中。
我確實需要找到gid值作爲返回值。
鑑於問題'book.Attributes'中的代碼是空的(Count = 0)。 – ChrisF 2010-06-09 09:46:13
你好。從'book.Attributes.Count = 0',在運行時無法找到'gid'。 – 2010-06-09 09:47:58
實際上,在我真正的xml文件中有數千個gid。我想用'selectSingleNode()'來解析元素層。我認爲這對我來說是一個快速的方法。然後我可以找到獨特的gid。 – 2010-06-09 09:53:58