Java vtd xml获取/删除属性名称和值
我有下面一段XML,我想从中剥离属性,并使用Ximpleware/VTD-XML作为新的XML输出。 资料来源:Java vtd xml获取/删除属性名称和值,java,xml,vtd-xml,Java,Xml,Vtd Xml,我有下面一段XML,我想从中剥离属性,并使用Ximpleware/VTD-XML作为新的XML输出。 资料来源: 目标: <top_level> <Item> <other_data> 我知道我可以使用removeAttribute(int attrNameIndex)来实现这一点,但是我正在努力找到获取attrNameIndex的适当方法。这里是一个嵌入xml文档的小代码片段。。它显示了如何删除一个属性或所有属性 import com.
目标:
<top_level>
<Item>
<other_data>
我知道我可以使用removeAttribute(int attrNameIndex)来实现这一点,但是我正在努力找到获取attrNameIndex的适当方法。这里是一个嵌入xml文档的小代码片段。。它显示了如何删除一个属性或所有属性
import com.ximpleware.*;
import java.io.*;
public class removeAttrNode {
public static void main(String[] s) throws VTDException, Exception{
VTDGen vg = new VTDGen(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
String xml = "<Payment attr1=' some val' attr2='some other val'><Store><![CDATA[abc]]></Store></Payment>";
vg.setDoc(xml.getBytes());
vg.parse(false); // turn off namespace awareness so that
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm = new XMLModifier(vn);
ap.selectXPath("/Payment/@*");// select all attr node of Payment element
int i=0;
while((i=ap.evalXPath())!=-1){
System.out.println("attr name "+vn.toString(i)+ " attr val ==>"+ vn.toString(i+1));
xm.removeAttribute(i);
}
xm.output(baos);
System.out.println(baos.toString());
}
}
导入com.ximpleware.*;
导入java.io.*;
公共类removeAttrNode{
公共静态void main(字符串[]s)引发VTDException,异常{
VTDGen vg=new VTDGen();ByteArrayOutputStream baos=new ByteArrayOutputStream();
字符串xml=”“;
setDoc(xml.getBytes());
parse(false);//关闭名称空间感知,以便
VTDNav vn=vg.getNav();
自动驾驶仪ap=新自动驾驶仪(vn);
XMLModifier xm=新的XMLModifier(vn);
ap.selectXPath(“/Payment/@*”);//选择Payment元素的所有属性节点
int i=0;
而((i=ap.evalXPath())!=-1){
System.out.println(“attr name”+vn.toString(i)+“attr val==>”+vn.toString(i+1));
xm.删除属性(i);
}
xm.输出(baos);
System.out.println(baos.toString());
}
}
顶层?这是打字错误吗?对不起!心不在焉地在我试图修改的字段周围添加了一些虚构的结构,而没有考虑语法。这是一段独立的代码-谢谢!将计算出我需要在当前代码中使用哪些位。
import com.ximpleware.*;
import java.io.*;
public class removeAttrNode {
public static void main(String[] s) throws VTDException, Exception{
VTDGen vg = new VTDGen(); ByteArrayOutputStream baos = new ByteArrayOutputStream();
String xml = "<Payment attr1=' some val' attr2='some other val'><Store><![CDATA[abc]]></Store></Payment>";
vg.setDoc(xml.getBytes());
vg.parse(false); // turn off namespace awareness so that
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
XMLModifier xm = new XMLModifier(vn);
ap.selectXPath("/Payment/@*");// select all attr node of Payment element
int i=0;
while((i=ap.evalXPath())!=-1){
System.out.println("attr name "+vn.toString(i)+ " attr val ==>"+ vn.toString(i+1));
xm.removeAttribute(i);
}
xm.output(baos);
System.out.println(baos.toString());
}
}