如何通过标记将xml-string拆分为不同的xml-strings?
假设我有以下XML。我怎么能有一个xml字符串 tag1及其值, tag2及其值和, tag3及其值。
<?xml version="1.0"?>
<Tag0>
<Tag1> //Other tags and values for tag1 </Tag1>
<Tag2> </Tag2>
<Tag3> </Tag3>
</Tag0>
我正在分割XML,因为当我为xml-strings创建XSD时,它只为tag1创建XSD,因为其余的与tag1具有相同的名称空间。
答案 0 :(得分:3)
在解析XML之后,您可以调用方法 getElementsByTagName 这将返回NodeList,并且只是从NodeList为每个元素实例化一个Node对象。
答案 1 :(得分:1)
首先使用SAXParser将xml解析为Java对象。然后你可以使用它获得任何东西。
答案 2 :(得分:1)
以下是在XPath和vtd-xml中进行拆分的代码。
import com.ximpleware.*;
import java.io.*;
public class splitXML {
public static void main(String[] args) throws VTDException, IOException {
VTDGen vg = new VTDGen();
if (!vg.parseFile("d:\\xml\\input.xml", false)){
System.out.println("error");
return;
}
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("/tag0/*");
int i=0,n=0;
FileOutputStream fos =null;
while((i=ap.evalXPath())!=-1){
fos = new FileOutputStream("d:\\xml\\output"+(++n)+".xml");
long l = vn.getElementFragment();
fos.write(vn.getXML().getBytes(), (int)l, (int)(l>>32));
fos.close();
}
}
}