Tôi đang phân tích cú pháp tài liệu xml, tôi cần tìm giá trị gid (thuộc tính) (3810).Cách nhận giá trị thuộc tính bằng cách sử dụng SelectSingleNode?
Dựa trên SelectSingleNode()
. Tôi thấy nó không phải là dễ dàng để tìm tên thuộc tính và giá trị của nó.
Tôi có thể sử dụng phương pháp này hoặc tôi phải chuyển sang một cách khác.
Được đính kèm là mã của tôi.
Tôi làm cách nào để sử dụng book
obj để nhận giá trị thuộc tính 3810
cho gid
. Cảm ơn bạn.
file test.xml tôi như sau
<?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>
tôi viết Test.cs như sau
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);
}
}
[Cập nhật 06/10/2010]
Các xml tệp là một tệp phức tạp. Bao gồm hàng ngàn gids. Nhưng đối với mỗi Xpath, gid là duy nhất.
Tôi tải tệp xml vào điều khiển TreeView.
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
. Khi sự kiệntreeView1_AfterSelect
xảy ra,e.Node.FullPath
sẽ trở lại dưới dạng Giá trị chuỗi.Tôi phân tích chuỗi giá trị
e.Node.FullPath
. Sau đó, tôi đã nhận được thành viên của XPath ở trên. Sau đó, tôi đã cố gắng tìm mục gid nào đã được chọn.
Tôi cần tìm giá trị gid dưới dạng giá trị trả về thực sự.
Với mã trong câu hỏi 'book.Attributes' trống (Đếm = 0). – ChrisF
Xin chào. Từ 'book.Attributes.Count = 0', không thể tìm thấy' gid' trong thời gian chạy. –
Thực tế, có hàng nghìn gid trong tập tin xml thật của tôi. Tôi muốn phân tích lớp phần tử bằng 'selectSingleNode()'. Tôi nghĩ đó là một phương pháp nhanh cho trường hợp của tôi. Sau đó, tôi có thể tìm thấy gid duy nhất. –