Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中按标记拆分XML字符串_Java_Xml_Xml Parsing - Fatal编程技术网

java中按标记拆分XML字符串

java中按标记拆分XML字符串,java,xml,xml-parsing,Java,Xml,Xml Parsing,如何按标记将xml字符串拆分为不同的xml字符串 假设我有以下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字符串

假设我有以下XML。如何使用xml字符串 tag1及其值, tag2及其值和, tag3及其值

 <?xml version="1.0"?>
 <Tag0>
   <Tag1> //Other tags and values for tag1 </Tag1>
   <Tag2> </Tag2>
   <Tag3> </Tag3>
 </Tag0>     

//tag1的其他标记和值

我之所以拆分XML,是因为当我为XML字符串创建XSD时,它只为tag1创建XSD,因为其余的字符串与tag1具有相同的命名空间

解析XML后,可以调用方法getElementsByTagName,这将返回一个NodeList,并仅从NodeList为每个元素实例化一个节点对象

解析XML后,可以调用方法getElementsByTagName,这将返回一个NodeList,并仅从NodeList为每个元素实例化一个节点对象

首先使用a将xml解析为Java对象。然后,您可以使用它获取任何内容。

首先使用a将xml解析为Java对象。然后,您可以使用它获取任何内容。

以下是使用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();
        }
    }
}

下面是使用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();
        }
    }
}

通过使用XML解析器?XML和正则表达式不匹配:。。。或者有趣的vesion:通过使用XML解析器?XML和正则表达式不匹配:。。。或者有趣的维森: