Sto analizzando un documento xml, ho bisogno di trovare il valore gid (un attributo) (3810).Come ottenere il valore dell'attributo utilizzando SelectSingleNode?
Basato su SelectSingleNode()
. Ho trovato che non è facile trovare il nome dell'attributo e il suo valore.
Posso usare questo metodo o devo passare in un altro modo.
Allegato è il mio codice.
Come è possibile utilizzare book
obj per ottenere il valore dell'attributo 3810
per gid
. Grazie.
Il mio file test.xml come di seguito
<?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>
ho scritto le Test.cs come di seguito
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);
}
}
[Aggiornamento 06/10/2010]
L'XML il file è un file complesso. Incluso migliaia di gid. Ma per ogni Xpath, il gid è unico.
Carico il file xml in un controllo TreeView.
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
. Quando si è verificato l'eventotreeView1_AfterSelect
, loe.Node.FullPath
verrà restituito come valore stringa.I analizza la stringa Valore
e.Node.FullPath
. Poi ho ottenuto il membro di XPath Above. Poi ho provato a trovare quale elemento del gid è stato selezionato.
Ho bisogno di trovare il valore del gid come valore di ritorno.
Dato il codice nella domanda 'book.Attributes' è vuoto (Conteggio = 0). – ChrisF
Ciao. Da 'book.Attributes.Count = 0', non è possibile trovare il' gid' durante il tempo di esecuzione. –
Nel mio vero file xml, ci sono migliaia di gitar. Mi piacerebbe analizzare il livello dell'elemento con 'selectSingleNode()'. Penso che sia un metodo veloce per il mio caso. Quindi posso trovare il gid univoco. –