我解析一个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