Тема: XML, DXL и прочая... очередной экзампел (выдергиватель файлов):

Создан:Mikhail Cholokov 07/10/2008 07:52 PM
Модифицирован:Mikhail Cholokov 05/12/2009 01:03 PM
Папка:
06. Разработка Notes-приложений, 07. Разработка Web-приложений, 10. Java & Lotus Notes
Тип сообщения:
Идея (работает!)

Сообщение:

история началась давно, но покоя тема не дает ;)
всякие тулзы сопутствующие Домине для XML не слишком гибки/быстры/лаконичны/итп

были поиски и экзампелы
Первый про LAX - тыцаем сюды
Второй про VTD - тыцаем сюды

теперь вариант такой (пользуем VTD-XML)

import java.io.*;
import com.ximpleware.*;

public class save_base64stream{
public static void main(String[] args) throws Exception{
VTDGen vg = new VTDGen();
// AutoPilot ap = new AutoPilot();
// ap.selectXPath("/document/item/object/file/filedata/text()");

AutoPilot apAttr = new AutoPilot();
apAttr.selectXPath("/document/item/object/file");

if (vg.parseFile("./exported2.dxl",true)){
VTDNav vn = vg.getNav();
apAttr.bind(vn);
// ap.bind(vn);
int i,iAttr;
String fileName;
while ((iAttr = apAttr.evalXPath()) != -1){
iAttr=vn.getAttrVal("name");
fileName=vn.toString(iAttr);
System.out.println(fileName);
i=-1;
vn.toElement(VTDNav.FIRST_CHILD, "filedata");
i=vn.getText();
Base64.decodeToFile(vn.toString(i),"test-"+fileName);
vn.toElement(VTDNav.PARENT);

// FileOutputStream fos = new FileOutputStream("test"+fileName);
// fos.write(s.getBytes());
// fos.close();
// System.out.println(vn.toString(i));
}
}
}
}


Base64 класс был в первом примере (оттудова, возможно, и надо взять ;)
компилить можно так:
javac -classpath ./:./vtd-xml.jar ./save_base64stream.java

!в текущем путе д.б. Base64.class

запущать можно так:
java -cp ./:./vtd-xml.jar save_base64stream


Иерархия документов данной дискуссии:
XML, DXL и прочая... очередной экзампел (выдергиватель файлов): (Mikhail Cholokov) (10.07.2008 19:52:17)


Разработчикам и администраторам: курсы, книги, сертификация