编程语言
首页 > 编程语言> > java – VTD XML内部XPath表达式

java – VTD XML内部XPath表达式

作者:互联网

我有一个像这样的xml文件

<root>
 <test>
  <bla>test1</bla>
 </test>
 <test>
  <bla>test2</bla>
 </test>
 <test>
 </test>
</root>

现在我想通过使用XPath表达式使用vtd-xml-parser解析它.首先,我通过搜索测试标签

VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("//test");

现在我想在这个测试标签中搜索bla标签

int result = -1;
int count = 0;

while ((result = ap.evalXPath()) != -1) {
 // evaluate XPath Expressions within the test tags
}

有人能告诉我如何制作这个表达方式吗?我不想在整个文档中搜索bla标签,因为我希望能够将bla标签分配给测试标签.如果bla标签为空,我不能这样做,我在整个文档中搜索bla标签.

解决方法:

您可以声明另一个自动驾驶仪(如下所示),尽管它并不总是最简单的方式

AutoPilot ap2 = new AutoPilot(); ap2.selectXPath("blah");

然后将其嵌套在循环中

while ((result = ap.evalXPath()) != -1) {
 // evaluate XPath Expressions within the test tags
  int i2=-1;
  while((i2=ap2.evalXPath())!=-1){
     // do more stuff here
  }
}

但问题是第二个xpath需要是相对的xpath表达式…

标签:vtd-xml,java,xml,xpath
来源: https://codeday.me/bug/20190730/1583818.html