在java中使用vtd-xml获取xml中属性的文本
给定以下 xml:
<JUT>
<DDT>
<SSG q="textGoal">Lorem ipsum...</SSG>
</DDT>
....
...
</JUT>
我将 vtd-xml 与 XPath 一起使用,以便检索“textGoal”,如下所示:
VTDGen vg = new VTDGen();
vg.setDoc(xmlContent);
vg.parse(false);
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
int node = 0;
ap.selectXPath("//SSG[1]/@q");
node = ap.evalXPath();
if(node != -1) {
myString = vn.toString(node);
}
这将 myString 指定为“q”而不是“textGoal”。我有两个问题:
- 我做错了什么?
- 我知道“textGoal”是 URL 转义的。 vtd-xml 是否执行 URL-UNEscape 还是我必须自己执行此操作?
问候
Given the following xml:
<JUT>
<DDT>
<SSG q="textGoal">Lorem ipsum...</SSG>
</DDT>
....
...
</JUT>
I am using vtd-xml with XPath in order to retrieve 'textGoal' as follows:
VTDGen vg = new VTDGen();
vg.setDoc(xmlContent);
vg.parse(false);
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
int node = 0;
ap.selectXPath("//SSG[1]/@q");
node = ap.evalXPath();
if(node != -1) {
myString = vn.toString(node);
}
This gives myString as 'q' and not 'textGoal'. I have two questions:
- What am I doing wrong?
- I know that 'textGoal' is URL-escaped. Does vtd-xml do URL-UNescape or do I have to do this myself?
Regards
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 vn.getAttributeVal(vn.toString(node))
Use
vn.getAttributeVal(vn.toString(node))
另一种方法是
假设节点不是-1。至于 URL 转义部分,您有
toString()
、toRawString()
和toNormalizedString()
可供选择Another way of doing it is
assuming node is not -1. As to the URL escaping, part, you have
toString()
,toRawString()
, andtoNormalizedString()
to choose from