JAVA读取xml文件中节点值

JAVA读取xml文件中节点值,第1张

import w c dom ;

import javax xml parsers ;

import java io ;

public class Parse{

//Document可以看作是XML在内存中的一个镜像 那么一旦获取这个Document 就意味着可以通过对

//内存的 *** 作来实现对XML的 *** 作 首先第一步获取XML相关的Document

private Document doc=null;

public void init(String xmlFile) throws Exception{

//很明显该类是一个单例 先获取产生DocumentBuilder工厂

//的工厂 在通过这个工厂产生一个DocumentBuilder

//DocumentBuilder就是用来产生Document的

DocumentBuilderFactory dbf=DocumentBuilderFactory newInstance();

DocumentBuilder db=dbf newDocumentBuilder();

//这个Document就是一个XML文件在内存中的镜像

doc=db parse(new File(xmlFile));

}

//该方法负责把XML文件的内容显示出来

public void viewXML(String xmlFile) throws Exception{

this init(xmlFile);

//在xml文件里 只有一个根元素 先把根元素拿出来看看

Element element=doc getDocumentElement();

System out println( 根元素为: +element getTagName());

NodeList nodeList=doc getElementsByTagName( dbstore );

System out println( dbstore节点链的长度: +nodeList getLength());

Node fatherNode=em( );

System out println( 父节点为: +fatherNode getNodeName());

//把父节点的属性拿出来

NamedNodeMap attributes=fatherNode getAttributes();

for(int i= ;i<attributes getLength();i++){

Node attribute=em(i);

System out println( dbstore的属性名为: +attribute getNodeName()+ 相对应的属性值为: +attribute getNodeValue());

}

NodeList childNodes = fatherNode getChildNodes();

System out println(childNodes getLength());

for(int j= ;j<childNodes getLength();j++){

Node childNode=em(j);

//如果这个节点属于Element 再进行取值

if(childNode instanceof Element){

//System out println( 子节点名为: +childNode getNodeName()+ 相对应的值为 +childNode getFirstChild() getNodeValue());

System out println( 子节点名为: +childNode getNodeName()+ 相对应的值为 +childNode getFirstChild() getNodeValue());

}

}

}

public static void main(String[] args)throws Exception{

Parse parse=new Parse();

//我的XML文件

parse viewXML( netct xml );

}

lishixinzhi/Article/program/Java/hx/201311/26710

java中不是有个读取xml文件的类吗?之间调用那类读取出来,然后用取节点的方法去取对应节点的里的值。等下给你代码。

public class ReaderXml {

private static String filename = "E:\\workplace\\readerxml\\bin\\reader\\xml\\readerxml";

// private static Config config;

public static void main(String []args) throws Exception{

//这里用反射机制

DocumentBuilderFactory domfac=DocumentBuilderFactorynewInstance();

DocumentBuilder dombuilder=domfacnewDocumentBuilder();

//读取文件流

InputStream is=new FileInputStream(filename);

Document doc=dombuilderparse(is);

Element root=docgetDocumentElement();

//获取所有xml节点

NodeList dbinfo=rootgetChildNodes();

if(dbinfo!=null){

for(int i=0;i<dbinfogetLength();i++){

//获取节点判断

Node db=dbinfoitem(i);

//如果是Hardwares节点,也就是你xml文件的最顶处的节点

if(dbgetNodeName()equals("Hardwares")){

//获取第二个节点包含的所有节点

NodeList list=dbgetChildNodes();

for(int y=0;y<listgetLength();y++){

Node n=listitem(y);

//如果节点等于Hardware

if(ngetNodeName()equals("Hardware")){

//获取Hardware节点中的所有节点

NodeList CnodeList=ngetChildNodes();

//取出Hardware里面的所有节点

for(int k=0;k<CnodeListgetLength();k++){

//取出节点

Node cn=CnodeListitem(k);

//去掉里面的#text文件节点。没用,这个不是你配置的节点,应该是xml文件隐藏的

if(!cngetNodeName()equals("#text")){

//打印你所配置的所有节点 Systemoutprintln("node["+k+"]="+cngetNodeName()+" nodeValue["+k+"]="+cngetTextContent());

}

}

}

}

}

}

}

}

}

//具体你要干嘛自己弄了!

可以用微软的IXMLDOMDocument2, 也可以用CMarkup,CMarkup可以在网上搜他怎么用,VS不自带的,要自己在网上下载代码。感觉CMarkup更容易 *** 作。注意一点就是假如在一个根element下有多个子element,要注意读子element的顺序,从上往下读,不能从下往上读,它会读不到。

以CMarkup为例:

CMarkup readXML;

if( !readXMLload(xml文件名);

return;

readXMLFindElem("class");

这时候可以用reaXMLGetData()取到132这个值

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

assets的读取方式:

1 先在Activity里面调用getAssets() 来获取AssetManager引用。

2 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。

3 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStreamclose() 。

4调用AssetManagerclose() 关闭AssetManager。

需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的 *** 作

import javautilList;

import orgdom4jDocument;

import orgdom4jDocumentException;

import orgdom4jElement;

import orgdom4jioSAXReader;

public class XmlTester {

    public static void main(String[] args) throws DocumentException {

        // 使用了dom4j解析xml

        // 读取目录下用来测试的testxml文件,取得xml主内容

        Document document = new SAXReader()read("src/abc/testxml")getDocument();

        int i = 1;

        // 遍历文档根节点(wuxialist)下的子节点列表,即txtbook节点的集合

        for(Element txtbook : (List<Element>)documentgetRootElement()elements()){

            //取得txtbook节点下的name节点的内容

            Systemoutprintln(i+""+txtbookelement("name")getText());

            i++; //原来这里少些了这一行,先补上

        }

    }

}

解析xml文件时首先获取到一个的实例是

在网络上传输的数据是格式化后的数据,这种数据会有一定的结构规格和语义,当另一方收到数据消息之后就可以按照相同的结构规格进行解析,从而取出他想要的那部分内容。

最常用的格式有两种:XML和JSON

· 解析XML格式的数据有多种方式,这里介绍两种:Pull解析和SAX解析。

比起XML,JSON的主要优势在于它的体积更小,在网络上传输的时候更省流量。缺点在于,它的语义较差,看起来不如XML直观。(代码量更少)

· 解析JSON数据的方法有多种方法,可以使用官方提供的JSONObject,也可以使用谷歌的开源库GSON,另外,第三方开源库如Jackson,FastJson等也非常不错。

//初始化一个xml实例

XmlDocument xml=new XmlDocument();

//导入指定xml文件

xmlLoad(path);

xmlLoad(>

以上就是关于JAVA读取xml文件中节点值全部的内容,包括:JAVA读取xml文件中节点值、java读取xml文件内容、XML文件内容如何读取(C或C++)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9295784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存