本文整理汇总了C#中com.ximpleware.VTDGen.parseFile方法的典型用法代码示例。如果您正苦于以下问题:C# VTDGen.parseFile方法的具体用法?C# VTDGen.parseFile怎么用?C# VTDGen.parseFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.ximpleware.VTDGen
的用法示例。
在下文中一共展示了VTDGen.parseFile方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
VTDGen vg = new VTDGen();
AutoPilot ap = new AutoPilot();
Encoding eg = System.Text.Encoding.GetEncoding("utf-8");
//ap.selectXPath("/*/*/*");
AutoPilot ap2 = new AutoPilot();
ap2.selectXPath("//@*");
if (vg.parseFile("soap2.xml", true))
{
FileStream fs = new FileStream("output.xml", System.IO.FileMode.OpenOrCreate);
VTDNav vn = vg.getNav();
ap.bind(vn);
ap2.bind(vn);
//ap.evalXPath();
int i;
while ((i = ap2.evalXPath()) != -1)
{
//System.out.println("attr name ---> "+ i+ " "+vn.toString(i)+" value ---> "+vn.toString(i+1));
vn.overWrite(i + 1, eg.GetBytes(""));
}
byte[] ba = vn.getXML().getBytes();
fs.Write(ba,0,ba.Length);
fs.Close();
}
}
示例2: Main
static void Main(string[] args)
{
VTDGen vg = new VTDGen();
int i;
AutoPilot ap = new AutoPilot();
ap.selectXPath("/CATALOG/CD[PRICE < 10]");
BookMark bm = new BookMark();
if (vg.parseFile("cd.xml", false))
{
VTDNav vn = vg.getNav();
bm.bind(vn);
ap.bind(vn);
//XPath eval returns one node at a time
while ((i = ap.evalXPath()) != -1)
{
// push the current cursor position
//vn.push();
bm.recordCursorPosition(); // equivalent to vn.push();
// get to the first child
if (vn.toElement(VTDNav.FIRST_CHILD, "TITLE"))
{
int j = vn.getText();
if (j != -1)
Console.WriteLine(" text node ==>" + vn.toString(j));
}
// restore the cursor position
//vn.pop();
bm.setCursorPosition(); // equivalent to vn.pop();
}
ap.resetXPath();
}
}
示例3: Main
static void Main(string[] args)
{
try
{
// open a file and read the content into a byte array
VTDGen vg = new VTDGen();
if (vg.parseFile("./servers.xml", true))
{
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
ap.selectElementNS("http://purl.org/dc/elements/1.1/", "*"); // select name space here; * matches any local name
int count = 0;
while (ap.iterate())
{
Console.Write("" + vn.getCurrentIndex() + " ");
Console.WriteLine("Element name ==> " + vn.toString(vn.getCurrentIndex()));
int t = vn.getText(); // get the index of the text (char data or CDATA)
if (t != -1)
Console.WriteLine(" Text ==> " + vn.toNormalizedString(t));
Console.WriteLine("\n ============================== ");
count++;
}
Console.WriteLine("Total # of element " + count);
}
}
catch (NavException e)
{
Console.WriteLine(" Exception during navigation " + e);
}
}
示例4: Main
static void Main(string[] args)
{
VTDGen vg = new VTDGen();
int i;
if (vg.parseFile("po.xml", true))
{
// instantiate a node recorder here
NodeRecorder nr = new NodeRecorder();
AutoPilot ap = new AutoPilot();
VTDNav vn = vg.getNav();
ap.bind(vn);
// bind node recorder to vn
nr.bind(vn);
ap.selectXPath("(/*/*/*)[position()=1 or position()=10]");
while ((i = ap.evalXPath()) != -1)
{
nr.record(); // save the selected nodes into nr
}
ap.resetXPath(); // a good practice
nr.resetPointer(); // get into nr's read mode
// iterating over the nodes recorded by nr
while ((i = nr.iterate()) != -1)
{
Console.WriteLine("string ==>" + vn.toString(i));
}
nr.clear(); //remove all the nodes in nr, buffer is however reused
}
}
示例5: Main
public static void Main(String[] args)
{
// instantiate VTDGen and XMLModifier
VTDGen vg = new VTDGen();
XMLModifier xm = new XMLModifier();
AutoPilot ap = new AutoPilot();
AutoPilot ap2 = new AutoPilot();
ap.selectXPath("(/*/*/*)[position()>1 and position()<4]");
ap2.selectXPath("/*/*/*");
if (vg.parseFile("soap2.xml", true))
{
VTDNav vn = vg.getNav();
xm.bind(vn);
ap2.bind(vn);
ap.bind(vn);
ap2.evalXPath();
ElementFragmentNs ef = vn.getElementFragmentNs();
int i = -1;
while ((i = ap.evalXPath()) != -1)
{
xm.insertAfterElement(ef);
}
xm.output("new_soap.xml");
}
}
示例6: Main
public static void Main(String[] args)
{
VTDGen vg = new VTDGen();
AutoPilot ap0 = new AutoPilot();
AutoPilot ap1 = new AutoPilot();
AutoPilot ap2 = new AutoPilot();
ap0.selectXPath("/root/a");
ap1.selectXPath("/root/b");
ap2.selectXPath("/root/c");
Encoding eg = System.Text.Encoding.GetEncoding("utf-8");
if (vg.parseFile("old.xml", false))
{
VTDNav vn = vg.getNav();
ap0.bind(vn);
ap1.bind(vn);
ap2.bind(vn);
FileStream fos = new FileStream("new.xml", System.IO.FileMode.OpenOrCreate);
//fos.Write("<root>".getBytes());
byte[] ba0,ba1, ba2, ba3, ba4;
//ba0 = eg.GetBytes("
ba1 = eg.GetBytes("<root>");
ba2 = eg.GetBytes("</root>");
ba3 = eg.GetBytes("\n");
fos.Write(ba1, 0, ba1.Length);
byte[] ba = vn.getXML().getBytes();
while (ap0.evalXPath() != -1)
{
long l = vn.getElementFragment();
int offset = (int)l;
int len = (int)(l >> 32);
fos.Write(ba3,0,ba3.Length);
fos.Write(ba, offset, len);
}
ap0.resetXPath();
while (ap1.evalXPath() != -1)
{
long l = vn.getElementFragment();
int offset = (int)l;
int len = (int)(l >> 32);
fos.Write(ba3,0,ba3.Length);
fos.Write(ba, offset, len);
}
ap1.resetXPath();
while (ap2.evalXPath() != -1)
{
long l = vn.getElementFragment();
int offset = (int)l;
int len = (int)(l >> 32);
fos.Write(ba3,0,ba3.Length);
fos.Write(ba, offset, len);
}
ap2.resetXPath();
fos.Write(ba3,0,ba3.Length);
fos.Write(ba2,0,ba2.Length);
}
}
示例7: Main
static void Main(string[] args)
{
try
{
// open file to output extracted fragments
System.IO.FileInfo f1 = new System.IO.FileInfo("./out.txt");
System.IO.FileStream fos = new System.IO.FileStream(f1.FullName, System.IO.FileMode.Create);
// instantiate the parser
VTDGen vg = new VTDGen();
if (vg.parseFile("./soap2.xml", true))
{
VTDNav vn = vg.getNav();
// get to the SOAP header
if (vn.toElementNS(VTDNav.FC, "http://www.w3.org/2003/05/soap-envelope", "Header"))
{
if (vn.toElement(VTDNav.FC))
// to first child
{
do
{
// test MUSTHAVE
if (vn.hasAttrNS("http://www.w3.org/2003/05/soap-envelope", "mustUnderstand"))
{
long l = vn.getElementFragment();
int len = (int)(l >> 32);
int offset = (int)l;
byte[] b = vn.getXML().getBytes();
fos.Write(b, offset, len); //write the fragment out into out.txt
System.Text.Encoding encoder = System.Text.Encoding.GetEncoding("ASCII");
byte[] bytes = encoder.GetBytes("\n=========\n");
fos.Write(bytes, 0, bytes.Length);
}
}
while (vn.toElement(VTDNav.NS)); // navigate next sibling
}
else
System.Console.Out.WriteLine("Header has not child elements");
}
else
System.Console.Out.WriteLine(" Dosesn't have a header");
fos.Close();
}
}
catch (NavException e)
{
System.Console.Out.WriteLine(" Exception during navigation " + e);
}
catch (System.IO.IOException e)
{
System.Console.Out.WriteLine(" IO exception condition" + e);
}
}
示例8: Main
static void Main(string[] args)
{
try
{
//File f = new File("bioinfo.xml");
// counting child elements of parlist
int count = 0;
// counting child elements of parlist named "par"
int par_count = 0;
VTDGen vg = new VTDGen();
if (vg.parseFile("./bioinfo.xml", true))
{
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot();
ap.bind(vn);
ap.selectXPath("/bix/package/command/parlist");
while (ap.evalXPath() != -1)
count++;
ap.selectXPath("/bix/package/command/parlist/par");
while (ap.evalXPath() != -1)
par_count++;
// print out the results
Console.WriteLine(" count ====> " + count);
Console.WriteLine(" par_count ==> " + par_count);
// verify results using iterators
int v = 0;
vn.toElement(VTDNav.ROOT);
ap = new AutoPilot(vn);
ap.selectElement("par");
while (ap.iterate())
{
if (vn.getCurrentDepth() == 4)
{
v++;
}
}
Console.WriteLine(" verify ==> " + v);
}
}
catch (NavException e)
{
Console.WriteLine(" Exception during navigation " + e);
}
catch (XPathParseException e)
{
}
catch (XPathEvalException e)
{
}
}
示例9: Main
static void Main(string[] args)
{
try
{
VTDGen vg = new VTDGen();
if (vg.parseFile("po.xml", true))
{
vg.writeIndex("po.vxl");
}
}
catch (Exception e)
{
}
}
示例10: Main
static void Main(string[] args)
{
VTDGen vg = new VTDGen();
if (vg.parseFile("mix3.xml", true))
{
vg.writeSeparateIndex("mix32.vtd");
}
VTDNav vn = vg.loadSeparateIndex("mix3.xml", "mix3.vtd");
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("//*");
int i;
while((i=ap.evalXPath())!=-1){
Console.WriteLine("element name: "+vn.toString(i));
}
}
示例11: Main
static void Main(string[] args)
{
try
{
// open file to output extracted fragments
System.IO.FileInfo f1 = new System.IO.FileInfo("./out.txt");
System.IO.FileStream fos = new System.IO.FileStream(f1.FullName, System.IO.FileMode.Create);
// instantiate the parser
VTDGen vg = new VTDGen();
if (vg.parseFile("./soap2.xml", true))
{
VTDNav vn = vg.getNav();
// get to the SOAP header
AutoPilot ap = new AutoPilot();
ap.bind(vn);
ap.declareXPathNameSpace("ns1", "http://www.w3.org/2003/05/soap-envelope");
// get to the SOAP header
ap.selectXPath("/ns1:Envelope/ns1:Header/*[@ns1:mustUnderstand]");
Console.WriteLine("expr string is " + ap.getExprString());
while (ap.evalXPath() != -1)
{
long l = vn.getElementFragment();
int len = (int)(l >> 32);
int offset = (int)l;
byte[] b = vn.getXML().getBytes();
fos.Write(b, offset, len); //write the fragment out into out.txt
System.Text.Encoding encoder = System.Text.Encoding.GetEncoding("ASCII");
byte[] bytes = encoder.GetBytes("\n=========\n");
fos.Write(bytes, 0, bytes.Length);
}
fos.Close();
}
}
catch (NavException e)
{
System.Console.Out.WriteLine(" Exception during navigation " + e);
}
catch (System.IO.IOException e)
{
System.Console.Out.WriteLine(" IO exception condition" + e);
}
}
示例12: Main
static void Main(string[] args)
{
VTDGen vg = new VTDGen();
if (vg.parseFile("mix3.xml", true))
{
VTDNav vn = vg.getNav();
// duplicated VTDNav instances share the same XML, LC buffers and VTD buffers.
VTDNav vn2 = vn.duplicateNav();
VTDNav vn3 = vn.duplicateNav();
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("//*");
int i;
while ((i = ap.evalXPath()) != -1)
{
Console.WriteLine("element name: " + vn.toString(i));
}
}
}
示例13: Main
static void Main(string[] args)
{
try
{
// open a file and read the content into a byte array
VTDGen vg = new VTDGen();
if (vg.parseFile("./oldpo.xml", true))
{
VTDNav vn = vg.getNav();
System.IO.FileInfo f1 = new System.IO.FileInfo("./newpo.txt");
System.IO.FileStream fos = new System.IO.FileStream(f1.FullName, System.IO.FileMode.Create);
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm = new XMLModifier(vn);
ap.selectXPath("/purchaseOrder/items/item[@partNum='872-AA']");
int i = -1;
while ((i = ap.evalXPath()) != -1)
{
xm.remove();
xm.insertBeforeElement("<something/>\n");
}
ap.selectXPath("/purchaseOrder/items/item/USPrice[.<40]/text()");
while ((i = ap.evalXPath()) != -1)
{
xm.updateToken(i, "200");
}
xm.output(fos);
fos.Close();
}
}
catch (NavException e)
{
Console.WriteLine(" Exception during navigation " + e);
}
catch (ModifyException e)
{
Console.WriteLine(" Modify exception occurred " + e);
}
catch (System.IO.IOException e)
{
System.Console.Out.WriteLine(" IO exception condition" + e);
}
}
示例14: Main
static void Main(string[] args)
{
try
{
// counting child elements of parlist
int count = 0;
// counting child elements of parlist named "par"
int par_count = 0;
VTDGen vg = new VTDGen();
if (vg.parseFile("./bioinfo.xml", true))
{
VTDNav vn = vg.getNav();
if (vn.matchElement("bix"))
{ // match blix
// to first child named "package"
if (vn.toElement(VTDNav.FC, "package"))
{
do
{
Console.WriteLine("package");
// to first child named "command"
if (vn.toElement(VTDNav.FC, "command"))
{
do
{
Console.WriteLine("command");
if (vn.toElement(VTDNav.FC, "parlist"))
{
do
{
Console.WriteLine("parlist");
count++; //increment count
if (vn.toElement(VTDNav.FC))
{
do
{
if (vn.matchElement("par"))
par_count++;
}
while (vn.toElement(VTDNav.NS));
vn.toElement(VTDNav.P);
}
}
while (vn.toElement(VTDNav.NS, "parlist"));
vn.toElement(VTDNav.P);
}
}
// to next silbing named "command"
while (vn.toElement(VTDNav.NS, "command"));
vn.toElement(VTDNav.P); // go up one level
}
else
Console.WriteLine(" no child element named 'command' ");
// verify result
}
while (vn.toElement(VTDNav.NS, "package")); // to next sibling named "package"
vn.toElement(VTDNav.P); // go up one level
}
else
Console.WriteLine(" no child element named 'package' ");
}
else
Console.WriteLine(" Root is not 'bix' ");
// print out the results
Console.WriteLine(" count ====> " + count);
Console.WriteLine(" par_count ==> " + par_count);
// verify results using iterators
int v = 0;
vn.toElement(VTDNav.ROOT);
AutoPilot ap = new AutoPilot(vn);
ap.selectElement("par");
while (ap.iterate())
{
if (vn.getCurrentDepth() == 4)
{
v++;
}
}
Console.WriteLine(" verify ==> " + v);
}
}
catch (NavException e)
{
Console.WriteLine(" Exception during navigation " + e);
}
}