我是 JAVA 编程和处理 XML 文件的解析器的新手,现在我需要 JAVA 程序来读取包含 .. 标签的大 XML 文件。输入示例如下。
我以前的 xml 文件是 .
<employees>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<name>Lisa</name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
</employee>
New `Input.xml`:
<row>
<Name>Filename1</Name>
</row>
<row>
<Name>Filename2</Name>
</row>
<row>
<Name>Filename3</Name>
</row>
我需要首先输出 <row> </row>
作为一个单一的.xml
文件名为 filename1.xml
的文件第二个<row>..</row>
如filename2.xml
等等。
I have tried something like:
Using this code we can split the xml document which contains below format.But this code not supported by new aim that was mentioned in the above question.my source code is,
import java.io.File;
import java.io.FileReader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stax.StAXSource;
import javax.xml.transform.stream.StreamResult;
public class Big {
public static void main(String[] args) throws Exception {
XMLInputFactory xif = XMLInputFactory.newInstance();
XMLStreamReader xsr = xif.createXMLStreamReader(new FileReader("input.xml"));
xsr.nextTag();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
while(xsr.nextTag() == XMLStreamConstants.START_ELEMENT) {
File file = new File("output1/" + xsr.getAttributeValue(null,"id") + ".xml");
t.transform(new StAXSource(xsr), new StreamResult(file));
}
}
}
my previous xml file is .
<employees>
<Employee id="1">
<age>29</age>
<name>Pankaj</name>
<gender>Male</gender>
<role>Java Developer</role>
</Employee>
<Employee id="2">
<age>35</age>
<name>Lisa</name>
<gender>Female</gender>
<role>CEO</role>
</Employee>
</employee>
它给出的输出为 1.xml,2.xml...但现在我的目标不同了,我的文件名应该是标签内的内容。
我应该修改源代码以获得我的新目标的结果吗?如果可能的话,您可以发送修改后的源代码吗???我使用 STAX 解析器
您能指导我们吗?
谢谢
索米娅
最佳答案
替换
xsr.getAttributeValue(null,"id")
与
xsr.getElementText()
关于java - 使用 SAX 或 STAX 进行 XML 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21548436/