tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
235
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DanielBodensee DanielBodensee ist offline Mitglied Silber
    Registriert seit
    Apr 2003
    Ort
    Konstanz
    Beiträge
    83
    Hallo,

    bin gerade am hirnen wie ich folgendes Problem angehen bzw lösen kann.

    Über verschiedene Beiträge bin ich auf ZipLib von ICSharp gestossen die mich sehr angetan hat.

    In meinem Source rufe ich eine XML-Datei ab:
    dim XmlStreamFile as system.io.stream = zip.zipfile.read (strFileName)

    Danach befindet sich ein ByteStream in der Variablen XmlStreamFile, soweit ok. Nun muss ich das ganze noch umwandeln zu einem ASCII-String, auch das hat funktioniert, diesen String übergeben ich dann per xmldoc.loadxml(xmlstream)

    Nun möchte ich das ganze in eine Klasse verbauen, so dass ich die Klasse mit dem XmlStreamFile als ByteStream und dem gesuchten Pfad zum Element wie ("/docu/test/reihe").

    Als Ergebnis möchte ich ein ArrayList() um so alle mit diesem Pfad gefundenen Wert zu erhalten.

    Soweit die Theorie.

    Ich würde gerne wissen wie man eine Klasse in der Form aufbauen kann die mir dann dieses ArrayList zurück gibt.

    Wäre toll wenn mir jemand helfen könnte.

    Viele Grüsse,
    Daniel
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Also du solltest mal keinen ASCII-String verwenden, sondern eher UTF-8.

    Des weiteren brauchst du dir nur eine Klasse erstellen mit einer Methode, die zum einen den Stream übernimmt und zum anderen deinen gewünschten XPath. Danach kannst du das ganze in ein XmlDocument laden, ein SelectNodes mit dem entsprechenden XPath aufrufen. Due erhaltenen Nodes liest du aus, schreibst die Werte in eine ArrayList und gibst diese zurück.
     

  3. #3
    DanielBodensee DanielBodensee ist offline Mitglied Silber
    Registriert seit
    Apr 2003
    Ort
    Konstanz
    Beiträge
    83
    Hallo Norbert,

    Danke für die Info, konnte ich wie Deine anderen Beiträge schon gut in die Tat umsetzen.

    Ein Problem habe ich:

    Ich lese aus einer Textdatei aus einem Zip-File die Datei aus. Der Typ ist system.io.stream.

    Wie kann ich feststellen wieviel ich lesen muss wenn stream.length immer 0 ausgibt? Wenn ich spasseshalber mal als Wert 2048 angebe, bekomme ich auch 2k an Daten, nur ich möchte ja bis zum Ende des Stream lesen und dann den gelesenen Dateiinhalt umwandlen in UTF8.

    Habe mich an Dein früheres Beispiel gehalten und lesen den Stream aus zipfile.getinputstream und dann

    while _streamsize = _stream.read(_buffer, 0, _buffer.length) > 0
    _strBuilder.append(new system.text.utf8encoding().getstring(_buffer,0,_streamsize)
    end while

    aber ich bekomme nicht die ganze Textdatei gelesen ohne zu wissen/anzugeben wieviel Bytes denn nun gelesen werden sollen.


    Gruss,
    Daniel
    Geändert von DanielBodensee (22.07.08 um 16:51 Uhr)
     

Ähnliche Themen

  1. MySQL Abfrage eines Wertes in einer zuvor aus einem Formular ausgewählten Spalte.
    Von godfather_al im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 28.12.10, 18:05
  2. Selektion eines nicht belegten Wertes innerhalb eines Bereiches (Oracle 10g)
    Von TimoTH im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 06.10.10, 16:42
  3. (Oracle 10.2) Wertes auf Basis eine min/max Wertes eines anderen Feldes
    Von Sabine_81 im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 27.10.08, 15:49
  4. Antworten: 1
    Letzter Beitrag: 26.06.08, 12:41
  5. Antworten: 6
    Letzter Beitrag: 11.07.05, 15:49