Flask接口签名sign原理与实例代码浅析
325
2023-07-23
java遍历读取xml文件内容
本文实例讲解了java遍历读取xml文件内容的详细代码,分享给大家供大家参考,具体内容如下
package test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import javax.xml.namespace.NamespaceContext;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMComment;
import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMDocType;
import org.apache.axiom.om.OMDocument;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMProcessingInstruction;
import org.apache.axiom.om.OMSourcedElement;
import org.apache.axiom.om.OMText;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;
import org.xml.sax.helpers.XMLReaderFactory;
public class Axiomtest {
public static void main(String[] args) throws FileNotFoundException, Throwable {
// read xml
FileInputStream xmlFile = new FileInputStream("line-item2.xml");
XMLStreamReader parser = XMLInputFactory.newInstance().createXMLStreamReader(xmlFile);
// 还需要StAXOMBuilder对象
StAGeQMIkIrXOMBuilder builder = new StAXOMBuilder(parser);
OMElement doc = builder.getDocumentElement(); // 读到
OMElement cre = doc.getFirstChildWithName(new QName("student")); //读到
OMElement cre1 = cre.getFirstChildWithName(new QName("id")); // 读到
System.out.println(cre1.getLocalName()+":"+cre1.getText());
cre1 = cre.getFirstChildWithName(new QName("name")); // 读到
System.out.println(cre1.getLocalName()+":"+cre1.getText());
cre1 = cre.getFirstChildWithName(new QName("age")); // 读到
System.out.println(cre1.getLocalName()+":"+cre1.getText());
cre1 = cre.getFirstChildWithName(new QName("sex")); // 读到
System.out.println(cre1.getLocalName()+":"+cre1.getText());
cre1 = cre.getFirstChildWithName(new QName("message")); // 读到
System.out.println(cre1.getLocalName()+":"+cre1.getText());
System.out.println("------------------------------1");
Iterator
while(iter.hasNext()){
OMElement temp = iter.next();
System.out.println("====================");
System.out.println(temp.getLocalName());
// System.out.println(temp.getText());
if(temp.getLocalName().equals("student")){
Iterator
System.out.println("----------------");
while(iter1.hasNext()){
OMElement temp1 = iter1.next();
System.out.println(temp1.getLocalName()+":"+temp1.getText());
}
}
}
System.out.println("!!!!!!!!!!!!!");
FileInputStream file = new FileInputStream("line-item2.xml");
XMLStreamReader read = XMLInputFactory.newInstance().createXMLStreamReader(file);
StAXOMBuilder sta = new StAXOMBuilder(read);
OMElement all = sta.getDocumentElement();
Iterator
while(ite1.hasNext()){
OMElement temp = ite1.next();
if(temp.getLocalName().equals("student")){
Iterator
while(ite2.hasNext()){
OMElement temp1 = ite2.next();
System.out.println(temp1.getLocalName()+":"+temp1.getText());
}
}
}
// write xml
OMFactory factory = OMAbstractFactory.getOMFactory();
//建立doc节点,doc节点会和下面的root节点合并
OMDocument dod = factory.createOMDocument();
//建立root节点
OMElement root = factory.createOMElement("root","","");
OMElement add = factory.createOMElement("dabi","","");
//建立两个普通节点
OMElement stu = factory.createOMElement("student","","");
stu.addChild(factory.createOMText("mac"));
OMElement tea = factory.createOMElement("teacher","","");
tea.addChild(factory.createOMText("silly"));
//构建树,将两个普通节点连到root节点上
root.addChild(stu);
root.addChild(tea);
//构建树,将root节点连到doc节点上
dod.addChild(root);
// 构建writer做输出器
XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(
new FileOutputStream("2.xml"));
root.serialize(writer); // cache on
writer.flush();
FileInputStream xmlFile1 = new FileInputStream("2.xml");
XMLStreamReader parser1 = XMLInputFactory.newInstance().createXMLStreamReader(xmlFile1);
StAXOMBuilder builder1 = new StAXOMBuilder(parser1);
OMElement doc1 = builder1.getDocumentElement();
Iterator
while(iter1.hasNext()){
OMElement temp = iter1.next();
System.out.println("====================");
System.out.println(temp.getLocalName()+":"+temp.getText());
}
System.out.println("!!!!!!!!");
OMFactory omf = OMAbstractFactory.getOMFactory();
// OMDocument od = omf.createOMDocument();
OMElement root1 = omf.createOMElement("root","","");
OMElement name = omf.createOMElement("name","","");
OMElement sex = omf.createOMElement("sexy","","");
sex.addChild(omf.createOMText("man"));
name.addChild(omf.createOMText("dabi"));
root1.addChild(sex);
root1.addChild(name);
// od.addChild(root1);
XMLStreamWriter xmlw = XMLOutputFactory.newInstance().createXMLStreamWriter(new FileOutputStream("3.xml"));
root1.serialize(xmlw);
xmlw.flush();
}
}
再分享一例: 用JAVA读取XML文件
解析XML的步骤如下:
1.创建DocumentBuilder工厂
2.创建DocumentBuilder对象
3.DocumentBuilder对象的parse方法得到Document对象
4.Document对象的getElementsByTagName得到NodeList集合
5.通过getFirstChild和getNextSibling进行遍历
用到的包:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
用到的对象:
DocumentBuilderFactory:创建DocumentBuilder的抽象工厂
DocumentBuilder:可以从 XML 获取一个 Document
Document:提供供对文档数据的基本访问
用到的方法:
DocumentBuilder.parse(String)':将给定 URI 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document对象
Document.getElementsByTagName(String)':返回具有给定标记名称的所有 Element 的 NodeList
Element.getAttribute(String)':通过名称获得属性值
下面来解析一个XML文件
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
public class Test
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try
{
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("pet2.xml");
NodeList dogList = doc.getElementsByTagName("dog");
System.out.println("共有" + dogList.getLength() + "个dog节点");
for (int i = 0; i < dogList.getLength(); i++)
{
Node dog = dogList.item(i);
Element elem = (Element) dog;
System.out.println("id:" + elem.getAttribute("id"));
for (Node node = dog.getFirstChild(); node != null; node = node.getNextSibling())
{
if (node.getNodeType() == Node.ELEMENT_NODE)
{
String name = node.getNodeName();
String value = node.getFirstChild().getNodeValue();
System.out.print(name + ":" + value + "\t");
}
}
System.out.println();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
XML文件
GeQMIkIr
以上就是本文的全部内容,希望对大家的学习有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~