PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (Erledigt) - Suchen und Ersetzten Mehrzeilig



Checcker
26.07.2016, 12:20
H,

und zwar ich hab folgendes Problem. Ich hab eine xml Datei in der folgendes wiedergegeben ist:

<Crypter>
<Link>http://relink.to/f/*****</Link>
<HosterName>Openload.co</HosterName>
<Status>Online</Status>
<Plugin>C:\IntelliTool\CrypterPlugins\relink.lcp</Plugin>
</Crypter>

Möchte jetzt sämtliche Zeilen komplett entfernen in denen unter HosterName Openload vorkommt. Das Problem dabei ist das eben der Link von Relink immer unterschiedliche Zeichen beinhaltet genauso die Zeile Status hier kann auch Offline drin stehen. Zudem sind auch weitere Zeilen vorhanden die unter HosterName z. B. Uploaded drin stehen haben. Diese sollen nicht entfernt werden sondern eben nur diese in denen Openload drin steh. Ist das irgendwie möglich?

Besten Dank vorab.

Grüße

Checcker

Nimbus
26.07.2016, 13:46
Hab ich dich richtig verstanden, dass du immer den kompletten "Crypter Block" (also den XML Node) entfernen möchtest, sobald der HosterName Openload beinhaltet?
Das sollte, sofern ich mir das auf Grundlage deiner Beschreibung korrekt vorstelle, relativ einfach möglich sein.

Aus deinem Thread wird nicht ganz klar, welche Art der Hilfe du dir erhoffst. Brauchst du Hilfe bzw. einen Ansatz für das Programmieren oder suchst du jemanden, der dir das programmiert?

Checcker
26.07.2016, 16:15
Genau haste richtig verstanden. Suche eben eine Lösung dafür. Hab ich vorhin schon etwas umgeschaut denke mal wird über Mehrzeiliges Suchen und Ersetzen und mit einem Regulären Ausdruck möglich sein oder? Hab da eben leider nur nicht so viel Ahnung habs mir vorhin nur mal kurz angeschaut versucht mal in diese Richtung zu gehen.

Jeh nach Aufwand suchen ich eben jemanden der mir ggfs. eine Lösung anbietet. Was aber laut deiner Aussage wohl relativ einfach sein sollte. Würde ansonsten ne Kleinigkeit springen lassen.

Unlimiter
26.07.2016, 16:23
Stichwort xPath. Das ist genau dafür ausgelegt. Du suchst dir einfach den Node <Hostername> und prüfst, ob darin "openload" steht. Sollte es so sein holst du dir mit x-Path den Parent-Node (das wäre der Crypter) und löschst diesen.

Das wars eigentlich schon. Natürlich musst du das Ganze dann noch speichern.

Checcker
26.07.2016, 16:36
Hört sich gut an werds nachher gleich mal probieren dann sag ich mal besten Dank soweit

Nimbus
26.07.2016, 16:54
Prinzipiell sind beide Methoden denkbar. Mit RegEx kann man das auch machen. Hier würden dann aber große Teile der übergeordneten Struktur ignoriert werden. Das hat den Vorteil, dass du dich wenig mit der Struktur beschäftigen musst. Ist dann dementsprechend auch fehleranfälliger.

Mit einer ordentlichen XML Schnittstelle, wie Unlimiter schon schrieb, bekommt man eine schönere/sauberer Lösung hin. Da musst du das auslesen/entfernen/abändern nicht selbst neu implementieren.

Wenn du Probleme bekommst, dann kannst du ja mal die ganze Datei posten (für die Struktur). Dann findet sich bestimmt jemand der das schnell macht bzw. jemand der deinen Ansatz korrigiert.

1stAid
26.07.2016, 23:06
Falls du nicht zurecht kommst und ein Tool geschrieben haben möchtest das das für dich erledigt, kannst du dich bei mir per PN melden. Ähnliche Tools habe ich Maßgeschneidert schon für einige geschrieben.

eine RegEx die bei dir treffen würde wäre

\<Link>http://relink.to(.+?)\</Link>.?\<HosterName>Openload.co\</HosterName>.?\<Status>(Online|Offline)\</Status> flags wie singeline, Ignorecase müssen noch gesetzt werden.
Kannst du z.b hier testen.
Free Online Regular Expression Tester - FreeFormatter.com (http://www.freeformatter.com/regex-tester.html)
Auch was du genau in welcher Kombination entfernt haben möchtest,geht nicht genau hervor. Auf jeden Fall wäre es in 1-2 Tagen zu coden.
Gruß

Checcker
27.07.2016, 11:21
Ich danke allen für Ihre Hilfe Nimbus hat mir das bereits gemacht in gefühlten 10 Sekunden. War eigentlich nur ne einmalige Sache.