Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Eine Bestimmte Zeile bzw. ein Wort aus XML mit Bedingung auslesen

Mitglied: sommerzeit

sommerzeit (Level 1) - Jetzt verbinden

06.04.2010 um 09:09 Uhr, 6947 Aufrufe, 11 Kommentare

Hallo zusammen,

ich möchte mithilfe von einem batch oder vbs eine bestimmte Zeile in XML (noch besser wäre das Wort in der Zeile) auslesen und in eine neue txt schreiben.

die Schwierigkeit hier ist: soll nur aulesen wenn das gesuchte Wort einen Flag hat.

Beispiel das gesuchte Wort ist "Tische"
und hat 3 zeilen darunter einen Flag "Bingo" (ist auch die Schlüssel für eine LÖSUNG)

dann soll Tisch ausgelesen werden sonst nicht.

vielen Dank für eure Hilfe.

hier ist ein Teil der Beispiel Datei:
<Product ID="PT10155" UserTypeID="Produkttyp">
<Name>balicí technika</Name>
<AttributeLink AttributeID="Tische" Mandatory="true">
<MetaData>
<Value AttributeID="kwesto.sortsequence">2000</Value>
<Value AttributeID="Bingo">Y</Value>
</MetaData>
</AttributeLink>
<AttributeLink AttributeID="hledani_balici technika">
</AttributeLink>
<Values>
Mitglied: Edi.Pfisterer
06.04.2010 um 12:59 Uhr
Hallo!
versuch mal folgenden ansatz (ungetestet )

mein_ergebnis.vbs
01.
zeilennummer = 0
02.
ausgabe = 0
03.
datei= "mein.xml"
04.
Set fs = CreateObject("Scripting.FileSystemObject")
05.
Set File = fs.OpenTextFile(datei , 1, true)
06.
Do While not file.AtEndOfStream
07.
        zeilennummer = zeilennummer+1
08.
        zeile = (file.ReadLine)
09.
        if zeilennummer = 3 then
10.
                inhaltneu =  zeile
11.
        end if
12.
                if zeilennummer = 6 AND instr(1, zeile, "bingo", 1) then
13.
                ausgabe = 1
14.
        end if
15.
Loop
16.

17.
if ausgabe = 1 then
18.
        Wortbeginn = instr(inhaltneu, Chr(34))
19.
        wortende = instr(wortbeginn+1, inhaltneu, Chr(34))
20.
        wort = mid(inhaltneu, wortbeginn+1, wortende-wortbeginn-1)
21.
        datei1 = "neu.txt"
22.
        set dateineu = fs.opentextfile(datei1, 8, true,0)
23.
        dateineu.write wort & vbcrlf
24.
end if
das sollte dir die gesame 3. Zeile auslesen...
Falls Du nur den Teil zwischen den " brauchst, meld dich ncohmal...

lg
Edi
Bitte warten ..
Mitglied: sommerzeit
06.04.2010 um 13:42 Uhr
Hallo Edi,

vielen Dank für deine schnelle Antwort,

diesen Script funktioniert nur wenn Bingo in Zeile 6 steht, wie oben geschrieben nur Bingo ist der Schlüssel, die Zeilen nur darf mann nicht benutzen, sonst bekommte ich nur eine zeile.

den Teil der XML, ist nur eine Kleine Ausschnitt, in der wirklichkeit hat hat diese Datei 400 000 Zeilen, und Bingo kann 100 000 mal vorkommen.

ich hoffe ich habe es richtig erklärt.

vielen Dank nochmal

gruß sommerzeit
Bitte warten ..
Mitglied: Edi.Pfisterer
06.04.2010 um 13:52 Uhr
Hallo!
ich bin mir nicht sicher, ob ich Dich richtig verstehe...

Poste mal einen längeren Abschnitt Deiner xml-Datei (zumindest so lange, dass das gesuchte Wort 3 mal und Bingo nur 2 mal vorkommt...), dann kann ich mir das Problem vielleicht besser vorstellen.


ps: falls Du dir mit Englisch leichter tust, ist das für mich kein Problem

lg
Edi
Bitte warten ..
Mitglied: sommerzeit
06.04.2010 um 14:24 Uhr
Vielen Dank nochmal für deine Hilfe,

hier ist ein größere Textabschnitt.

in diesem Fall soll die Ausgabe wie folgt sein:

<AttributeLink AttributeID="Tische="true">
<AttributeLink AttributeID="Stühle">
<AttributeLink AttributeID="Fenster="true">

Beginn der XML
<Product ID="MT10163" UserTypeID="Merkmalstyp">
<Name>klešte</Name>
<AttributeLink AttributeID="Tische="true">
<MetaData>
<Value AttributeID="kwesto.sortsequence">2040</Value>
<Value AttributeID="Bingo">Y</Value>
</MetaData>
</AttributeLink>
<AttributeLink AttributeID="Stühle">
<MetaData>
<Value AttributeID="kwesto.sortsequence">2080</Value>
<Value AttributeID="Bingo">Y</Value>
</MetaData>
</AttributeLink>
<AttributeLink AttributeID="Wagen" Mandatory="true">
<MetaData>
<Value AttributeID="kwesto.sortsequence">2060</Value>
</MetaData>
</AttributeLink>
<AttributeLink AttributeID="Fenster="true">
<MetaData>
<Value AttributeID="kwesto.sortsequence">2020</Value>
<Value AttributeID="Bingo">Y</Value>
</MetaData>
<AttributeLink AttributeID="pro vysku spony" Mandatory="true">
<MetaData>
<Value AttributeID="kwesto.sortsequence">3020</Value>
</MetaData>
</AttributeLink>
<AttributeLink AttributeID="druh ovladani" Mandatory="true">
<MetaData>
<Value AttributeID="kwesto.sortsequence">3010</Value>
</MetaData>
Bitte warten ..
Mitglied: Edi.Pfisterer
06.04.2010 um 14:43 Uhr
Hallo!
Ich gehe jetzt mit meiner Holden ein bissl spazieren, schreib Dir den entsprechenden code aber am Abend beim Fernsehen, wenn ich heimkomme ...

lg
Edi
Bitte warten ..
Mitglied: bastla
06.04.2010 um 14:44 Uhr
@Edi
Als Ansatz (komme gerade auch nicht gut dazu):
01.
Inhalt = Split(fs.OpenTextFile(datei), vbCrLf)
02.
For i = 0 To UBound(Inhalt)
03.
   ...
In einem Array lässt sich's leichter "nach vorne" schauen ...

... und die 400000 Zeilen werden ja wohl im Speicher Platz haben ...

Grüße
bastla
Bitte warten ..
Mitglied: Edi.Pfisterer
06.04.2010 um 15:16 Uhr
@ bastla:
danke für deine Anmerkung, habs jetzt aber doch anders gemacht...

@sommerzeit:
meine Freundin hat uns noch schnell einen Imbiss zubereitet, damit wir uns gestärkt auf den Weg machen können...
(und die Zeit hat zu folgendem - getestetem - Ergebnis gereicht):

01.
datei= "mein.xml"
02.
Set fs = CreateObject("Scripting.FileSystemObject")
03.
Set File = fs.OpenTextFile(datei , 1, true)
04.
Do While not file.AtEndOfStream
05.
        zeile = (file.ReadLine)
06.
        if instr(zeile, "AttributeLink AttributeID") >= 1 then
07.
                temp = zeile
08.
        end if
09.
        if instr(1, zeile, "bingo", 1) then
10.
        call schreiben(temp)
11.
        end if
12.
Loop
13.

14.
function schreiben(inhalt)
15.
        datei1 = "neu.txt"
16.
        set dateineu = fs.opentextfile(datei1, 8, true,0)
17.
        dateineu.write inhalt & vbcrlf
18.
end function
lg
Edi
Bitte warten ..
Mitglied: sommerzeit
06.04.2010 um 15:38 Uhr
Hallo Edi und Bastler,

Vielen herzlichen Dank, es hat SUPER funktioniert.
Bitte warten ..
Mitglied: bastla
06.04.2010 um 15:52 Uhr
Hallo Edi!

Lässige Lösung - ich hätte das "3 zeilen darunter" unnötig ernst genommen ...

Grüße
bastla
Bitte warten ..
Mitglied: Edi.Pfisterer
06.04.2010 um 19:57 Uhr
@ sommerzeit:
gern geschehen, freut mich, wenn ich Dir helfen konnte...

@ bastla:
Danke für die Blumen - da sie von Dir kommen, freut mich das Lob besonders...
lg
Bitte warten ..
Mitglied: bastla
06.04.2010 um 22:26 Uhr
[OT]
@Edi
Danke für die Blumen
Ich müsste lügen, wenn ich behaupten würde, dass ich derlei virtuelle Pflänzchen nicht selbst gerne entgegennehme - daher reiche ich sie auch mit Freude weiter (besonders, wenn mir eine Lösung so gut gefällt) ...
[/OT]

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word bestimmt Sprache selbst
gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Batch & Shell
Powershell - if Bedingung
gelöst Frage von pps4535Batch & Shell4 Kommentare

Moin, moin, ich dachte ich mal einen neuen Thread auf, damit es geordnet abläuft :-) Hier habe ich schon ...

Windows 7
Batch IF Bedingung
gelöst Frage von JanSKIJWindows 73 Kommentare

Guten Morgen, seit mehreren Tagen versuche ich mich nun an meinem Script. Das meiste hab ich mir erfolgreich zusammen ...

Batch & Shell

Textdatei (.txt) Wort für Wort auslesen per batch (Spaltenweise)

Frage von pdiddoBatch & Shell1 Kommentar

Hi, ich habe eine Textdatei (.txt). Diese hat mehrere Zeilen. Ich möchte diese gerne Spalte für Spalte auslesen, sodass ...

Neue Wissensbeiträge
Router & Routing
Der "768k-Day" kommt
Information von LordGurke vor 17 StundenRouter & Routing2 Kommentare

Für Leute, die Router mit BGP-Fulltable betreiben vielleicht ein interessanter Hinweis: Die IPv4-Fulltable erreicht voraussichtlich innerhalb der nächsten 2-3 ...

Debian

Partition angeblich voll, dabei aber noch nicht mal zur Hälfte belegt

Anleitung von diemilz vor 19 StundenDebian8 Kommentare

Hallo zusammen, ich habe ein kleines Problem: Ich habe auf einem physischen Debian Linux Server als ZoneMinder-Server (HP ProLiant ...

Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 5 TagenWindows 72 Kommentare

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 7 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Heiß diskutierte Inhalte
Backup
Veeam Community Edition
gelöst Frage von dgrebnerBackup21 Kommentare

Hallo Zusammen, kann jemand seine praktischen Erfahrungswerte mit der Veeam-Community Edition mit mir teilen? Es gab dazu ja schon ...

Festplatten, SSD, Raid
Harddisk kaputt, was sagt mir ChrystalDiskInfo
gelöst Frage von InfoSeekerFestplatten, SSD, Raid18 Kommentare

Hallo zusammen, Mein Rechner lahmt. Ich stell mir die Frage woran es liegt und bin der Meinung es ist ...

LAN, WAN, Wireless
Notebooks in Firmenwlan authentifizieren
gelöst Frage von EarthShakerLAN, WAN, Wireless17 Kommentare

Guten Tag, unsere Firma möchte gerne flächendeckend WLAN einführen und hat zu diesem Zweck einen Dienstleister beauftragt. Wir benötigen ...

Netzwerkmanagement
Netzwerk vorübergehend weg
gelöst Frage von ahstaxNetzwerkmanagement13 Kommentare

Hallo, folgendes Szenario stellt sich dar: Im Netzwerk mit Win7-PCs wurden Switche ausgetauscht. Grundsätzlich funktioniert alles mindestens so gut ...