VTDGen vg = new VTDGen(); if (vg.parseFile("c://xml//alex.txt", true)){ VTDNav vn = vg.getNav(); AutoPilot ap = new AutoPilot(vn); ap.selectXPath("//L/D"); int i=-1; while((i=ap.evalXPath())!=-1){ long l = vn.getContentFragment(); System.out.println(" -==> "+ vn.toString((int )l, (int)(l>>32))); } }
protected int getCurrentByteOffset() throws NavException { if (fragPos == FragmentPosition.BEFORE_OPEN_TAG || fragPos == FragmentPosition.AFTER_CLOSE_TAG) { long elFrag = nav.getElementFragment(); int elOffset = (int)elFrag; if (fragPos == FragmentPosition.AFTER_CLOSE_TAG) { int elLength = (int)(elFrag >> 32); return elOffset + elLength; } return elOffset; } long contFrag = nav.getContentFragment(); int contOffset = (int)contFrag; if (fragPos == FragmentPosition.BEFORE_CLOSE_TAG) { int contLength = (int)(contFrag >> 32); return contOffset + contLength; } return contOffset; }
import com.ximpleware.*; public class getContent { public static void main(String s[]) throws VTDException{ VTDGen vg = new VTDGen(); if (!vg.parseFile("C:\\Users\\HC\\Desktop\\dataset\\book.xml", false)) return; VTDNav vn = vg.getNav(); if (vn.toElement(VTDNav.FIRST_CHILD, "book")){ long l = vn.getContentFragment(); System.out.println( "book content ==> "); System.out.println(vn.toString((int)l, (int)(l<<32))); } } }
import com.ximpleware.*; import java.io.*; public class simpleMerge { static VTDGen vg = new VTDGen(); public static void main(String[] s) throws VTDException,IOException{ FileOutputStream fos = new FileOutputStream("d:\\xml\\o.xml"); // write header to byte[] header=("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+ "<products>").getBytes(); fos.write(header); appendSingleFile("d:\\xml\\xml-1.xml",fos); appendSingleFile("d:\\xml\\xml-2.xml",fos); fos.write("</products>".getBytes()); } // write everything under root into output efficiently, ie. direct byte copying public static void appendSingleFile(String fileName,FileOutputStream fos) throws VTDException,IOException{ if (!vg.parseFile(fileName, false)){ System.out.println("invalid file:"+fileName); System.exit(1); } VTDNav vn = vg.getNav(); long l = vn.getContentFragment(); fos.write(vn.getXML().getBytes(),(int)l,(int)(l>>32)); vg.clear(); } }
/** * Returns the fragment of XML, where <tt>vn</tt> currently points to, as a * string. * * @param vn The XML navigator. * @param fragmentType Either {@link #ELEMENT_FRAGMENT} or {@link #CONTENT_FRAGMENT}. * Determines which respective method on <tt>vn</tt> is called. * The first returns the whole element, including starting and * end tag, the latter omits the tags of the element and only * returns its enclosed contents. * @param returnRawString Whether to return a raw string, i.e. the pure XML fragment * without resolving XML entities, or a "readable" string which * then possibly cannot be used for further XML parsing. * @return The XML fragment of the current element <tt>vn</tt> points to. * @throws NavException */ public static String getFragment(VTDNav vn, int fragmentType, boolean returnRawString) throws NavException { long fragment = fragmentType == ELEMENT_FRAGMENT ? vn.getElementFragment() : vn.getContentFragment(); int offset = (int) fragment; int length = (int) (fragment >> 32); return returnRawString ? vn.toRawString(offset, length) : vn.toString(offset, length); }
import com.ximpleware.*; public class removeNode { public static void main(String s[]) throws Exception{ VTDGen vg = new VTDGen(); boolean b = vg.parseFile("input.xml", false); if (b==false) return; VTDNav vn = vg.getNav(); XMLModifier xm = new XMLModifier(vn); vn.toElement(VTDNav.FC); // get to A node long l = vn.getContentFragment(); xm.remove(l); xm.output("output.xml"); } }
int startTagOffset = (int)elementFragment; int endTagOffset; long contentFragment = nav.getContentFragment(); if (contentFragment == -1) {
vn.toElement(VTDNav.FIRST_CHILD); if (vn.toElement(VTDNav.NS, "d")) { long l = vn.getContentFragment(); long l = vn.getContentFragment(); vn.toElement(VTDNav.FIRST_CHILD); long l = vn.getContentFragment(); long l = vn.getContentFragment(); String one = vn.toString((int) l, 8); // get the framgment <c></c> FileWriter fileWriter = new FileWriter("e://three.xml");
import com.ximpleware.*; import java.io.*; public class removeTag { public static void main(String[] args) throws VTDException,IOException { // TODO Auto-generated method stub VTDGen vg = new VTDGen(); AutoPilot ap=new AutoPilot(); ap.selectXPath("//value"); XMLModifier xm = new XMLModifier(); if (!vg.parseFile("d:\\xml\\tag.xml", false)){ System.out.println("error in xml"); return; } VTDNav vn = vg.getNav(); xm.bind(vn); ap.bind(vn); int i=0; while((i=ap.evalXPath())!=-1){ xm.remove();//remove value fragment long l = vn.getContentFragment(); //replace value with everything it encloses xm.insertBeforeElement(vn.getXML().getBytes(), l); } xm.output("d:\\xml\\newTag.xml"); } }
vn.toElement(VTDNav.P); l2 = vn.getContentFragment(); for (int j=0;j<fib.size();j++){ xm.insertAfterHead(vn,l1);
long wordFragment = nav.getContentFragment(); int wordOffset = (int)wordFragment; while (nextInlineObject != null && wordOffset >= nextInlineObject.getOffset()) {