Autor Beitrag
yndaso
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Mi 05.08.09 12:29 
Hallo,

wie komme ich an einen bestimmten Node bei dieser xml Datei heran.
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
 <?xml version="1.0" standalone="yes" ?> 
- <Sequence_Table>
- <Function>
  <Exec>true</Exec
  <Object>AutomationBuilder</Object
  <FuncName>InitializeProject</FuncName
  <Par1>RRS_Standard.iwp</Par1
  <Par2>MTXObject</Par2
  <Par3 /> 
  </Function>
- <Function>
  <Exec>true</Exec
  <Object>MTX</Object
  <FuncName>FirmwareDownload</FuncName
  <Par1>C:\FWC-CMP40_60-MT17.2.19.fw</Par1
  </Function>
+ <Function>
  <Exec>true</Exec
  <Object>AutomationBuilder</Object
  <FuncName>Sleep</FuncName
  <Par1>5</Par1
  </Function>
+ <Function>
  <Exec>true</Exec
  <Object>Basic.Application</Object
  <FuncName>Shutdown</FuncName
  </Function>
  </Sequence_Table>

So ich brauche nun den Inhalt des Nodes
<Par1>C:\FWC-CMP40_60-MT17.2.19.fw</Par1>
Wer kann mir hier helfen? Mein Problem ist die Nodes alle Function heißen...

Hier mal mein Ansatz:


ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
            xmldoc.Load(path);
            tmpXmlNode = xmldoc.SelectSingleNode("Sequence_Table").SelectSingleNode("Function");
            if (tmpXmlNode != null)
            {
    //Hier komme ich noch rein, weiter weiß ich nicht, weil der erste Node selektiert ist...
            }


Hoffe mal wieder auf eure Unterstützung!
Danke
yndaso Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Mi 05.08.09 13:04 
Habe mal 30 Minuten ausprobiert...

Es gibt ne Möglichkeit mit ChildNotes.Items() per Schleife darauf zuzugreifen.

Hat somit nun geklappt...
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 06.08.09 12:07 
Hallo,

die Antwort findest du bei XPath.

In deinem Code machst du doch xmldoc.SelectSingleNode( AUSDRUCK ) ...

dieser Ausdruck ist XPAth.

XPath erlaubt dir viele Sachen. Such am besten nach einem Tutorial im Internet oder so, da würdst du bestimmt fündig.

Dein Ausdrücke wäre dann in etwa:

/Sequence_Table/Function[position()=3]/Par1

Gruß Daniel

PS: Wahrscheinlich ist dein Par1 nicht immer an der 3ten Position... Deshalb wäre wohl

/Sequence_Table/Function/FuncName[text()=FirmwareDownload]/../Par1
besser... (Um den Dateiname anhand des FuncName zu bekommen)... schau einfach mal nach Xpath.... :o