base64EncodedMac
我将上述XML存储在Java String中。我想从所有节点中删除<Address>
<value xsi:type="..." xmlns:ns3="..." xmlns:xsi="....">
<item>
<Country>USA</Country>
<City>New York</City>
<Street>Sunrise Av.</Street>
<Number>164</Number>
</item>
</value>
</Address>
<University>
<value xsi:type="..." xmlns:ns3="..." xmlns:xsi="....">
<item>
<Name>Cambridge</Name>
<Location>UK</Location>
<Department>IT</Department>
</item>
</value>
</University>
<Work>
<value xsi:type="..." xmlns:ns3="..." xmlns:xsi="....">
</Work>
标记。你有什么方法可以解决这个问题吗?
我想要的结果如下:
<value>
答案 0 :(得分:0)
以下是基于XPath和VTD-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");
}
}