Laden...

Regex (<item>).*?(</item>) liefert keine Treffer

Erstellt von Ploetzi vor 13 Jahren Letzter Beitrag vor 13 Jahren 739 Views
Ploetzi Themenstarter:in
313 Beiträge seit 2006
vor 13 Jahren
Regex (<item>).*?(</item>) liefert keine Treffer

Hallo,
habe folgenden String:

<?xml version="1.0" encoding="utf-8"?>
<channel>
<setting>
<typ>Titel</typ>
<title>Meldegruppen</title>
<link></link>
</setting>

<setting><typ>Button1</typ>
<title></title>
<link></link>
</setting>

<setting><typ>Button2</typ>

<title></title>
<link></link>
</setting>

<setting><typ>Button3</typ>
<title></title>
<link></link>
</setting>

<setting><typ>Spalteninfos</typ>
<title>Meldegruppe</title>
<line1>200,100,80,100</line1>

<line2>ID,Name,Ruhe/Offen,Ein/Aus,Alarm,Aktion</line2></setting>

<item>
<title>1 MG 1 IOM 15196    </title>
<nummer>1</nummer>
<id>1</id>
<icon>grau</icon>
<image1>1</image1>
<image2>1</image2>
<image3>1</image3>

<link>NO_LINK</link>
<line1>  </line1>
<line2>Ruhe</line2>
<line3>Ein</line3>
<line4>kein Alarm</line4>
<btlink1>RC_ABI_Username_CMDMG_1_1_</btlink1>
<btlink2>RC_ABI_Username_CMDMG_1_2_</btlink2>
<btlink3>RC_ABI_Username_CMDMG_1_3_</btlink3>
<btlink4>RC_ABI_Username_CMDMG_1_4_</btlink4>

<bttext1>Rueckstellen (exkl.)</bttext1>
<bttext2>Rueckstellen(inkl.)</bttext2>
<bttext3>Ein</bttext3>
<bttext4>Aus</bttext4>
</item>


<item>
<title>11 Brand            </title>
<nummer>11</nummer>
<id>11</id>
<icon>grau</icon>
<image1>1</image1>

<image2>1</image2>
<image3>1</image3>
<link>NO_LINK</link>
<line1>  </line1>
<line2>Ruhe</line2>
<line3>Ein</line3>
<line4>kein Alarm</line4>
<btlink1>RC_ABI_Username_CMDMG_11_1_</btlink1>
<btlink2>RC_ABI_Username_CMDMG_11_2_</btlink2>

<btlink3>RC_ABI_Username_CMDMG_11_3_</btlink3>
<btlink4>RC_ABI_Username_CMDMG_11_4_</btlink4>
<bttext1>Rueckstellen (exkl.)</bttext1>
<bttext2>Rueckstellen(inkl.)</bttext2>
<bttext3>Ein</bttext3>
<bttext4>Aus</bttext4>
</item>


</channel>

Wollte jetzt die <item></item> mit Regex rausschneiden, wieso geht das nicht?
Das ist mein Code:


 MatchCollection paramValues = Regex.Matches(message, @"(<item>).*?(</item>)",RegexOptions.Multiline);
                                    System.Diagnostics.Debug.WriteLine("Elemente Anzahl:"+paramValues.Count);

Elemente Anzahl:0

Ich hatte bereits ähnliches verfasst vor einiger Zeit aber das war HTML:
Regex <form> und </form> auslesen

F
174 Beiträge seit 2007
vor 13 Jahren

Hallo Ploetzi,

wenn es sich sowieso um ein XML-Format handelt, warum willst du dann Regex dafür verwenden? Warum benutzt du nicht einfach die XmlDocument-Klasse um Items zu löschen?

K
1 Beiträge seit 2010
vor 13 Jahren

Wenn Du bei Regex bleiben willst:
Dann RegexOptions.SingleLine wählen, damit der Zeilenumbruch "\n" auch mittels dot (".") gematched werden kann.

Dann kommt bei mri Elemente Anzahl:2 dabei raus...