Entwickler-Ecke

IO, XML und Registry - Bekomme OuterXml.Split(new Char[] { '<' }) nicht hin.


Marcel# - Di 28.02.12 10:03
Titel: Bekomme OuterXml.Split(new Char[] { '<' }) nicht hin.
Hi,

Ich habe eine Xml Datei, die ist leider vorgegeben, ich brauch die   <macro name="EX2c"/> aus der Datei aber ohne das <macro name= und das /> ich hab es auch schon mit substr probiert aber das geht ja auch nicht weil es ein riesen string ist.
Wie krieg ich nur den String ohne die xml tags? Danke im Voraus


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 XmlNode elem = doc.DocumentElement.FirstChild;
                elem = doc.DocumentElement.ChildNodes[2];
     
                string[] meineStrings = elem.OuterXml.Split(new Char[] { '<' });
                for (int i = 0; i < meineStrings.Count() ; i++)
                {
                
                    richTextBox2.AppendText(meineStrings[i]);
                }




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:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
<menu name="PGTEXT">
    
    <macro name="BG-Fall"/>
    <macro name="DMP-Diabetes mellitus"/>
    <macro name="Impfung"/>
    
    
    <macro name="GEK-Hausarztmodel"/>
    <macro name="KHK-DMP"/>
    <macro name="DMP-Brust"/>
    <macro name="HZV"/>
    <macro name="DMP-KHK"/>
    <macro name="DMP-Asthma"/>
  </menu><menu name="HMV_INDSCHL">
    <macro name="EN2"/>
    <macro name="EN2A1"/>
    <macro name="EX1a"/>
    <macro name="EX2c"/>
    <macro name="SP2"/>
    <macro name="WS1c"/>
    <macro name="WS2a"/>
    <macro name="WS2b"/>
    <macro name="WS2c"/>
    <macro name="WS2e"/>
    <macro name="WS2f"/>
    <macro name="ZNS"/>
    <macro name="WS1b"/>
    <macro name="EX2b"/>
    <macro name="Ex2c"/>
    <macro name="LY2a"/>
    <macro name="SP1"/>
    <macro name="Sp 5"/>
    <macro name="WS1a"/>
    <macro name="WS1d"/>
    <macro name="ZN2a"/>
    <macro name="ZN2b"/>
    <macro name="Ly3a"/>
    <macro name="WS2g"/>
    <macro name="DFc Podolog. Komplexbehandlung nur 3x"/></menu>

  <menu name="RP_VH">
    <macro name="0-0-1"/>
    <macro name="0-1-0"/>
    <macro name="1-0-0"/>
    <macro name="1-0-1"/>
    <macro name="1-1-0"/>
    <macro name="1-1-1"/>
  </menu><menu name="EL_BEGRUENDUNG">
    <macro name="Kompletter Ober- und Unterbauchstatus"/>
  </menu><menu name="ANREDE">
    <macro name="Frau"/>
    <macro name="Frl."/>
    <macro name="Herr"/>
  </menu>



edit: mit """ als trennzeichen klappts wunderbar :) aber würd mich trotzdem interessieren wie ich das schreiben würde damit es mit dem "<" geht


Th69 - Mi 29.02.12 10:45

Hallo Marcel,

du verwendest doch schon die XmlDocument-Klasse - dann brauchst du doch nicht mit String-Operationen hantieren.
Was du suchst nennt sich in XML "Attribute", d.h.

C#-Quelltext
1:
2:
3:
string name = elem.Attributes[0].Value;
// oder
string name = elem.Attributes.GetNamedItem("name").Value;

Am besten jedoch noch abfragen, ob der Rückgabewert der Eigenschaft bzw. der Methode ungleich null ist, bevor du auf Value zugreifst.