java 关于读取xml文件的问题

java 关于读取xml文件的问题,第1张

用dom4j

dom4j 需要一个jar包 网上有下载 一搜很多的。

1读取XML文件,获得document对象。

SAXReader reader = new SAXReader();

Document document = readerread(new File("inputxml"));

2解析XML形式的文本,得到document对象。

String text = "<members></members>";

Document document = DocumentHelperparseText(text);

3主动创建document对象。

Document document = DocumentHelpercreateDocument();

Element root = documentaddElement("members");// 创建根节点

二、节点相关

1获取文档的根节点。

Element rootElm = documentgetRootElement();

2取得某节点的单个子节点。

Element memberElm=rootelement("member");// "member"是节点名

3取得节点的文字

String text=memberElmgetText();也可以用:

String text=rootelementText("name");这个是取得根节点下的name字节点的文字

4取得某节点下名为"member"的所有字节点并进行遍历

List nodes = rootElmelements("member");

for (Iterator it = nodesiterator(); ithasNext();) {

Element elm = (Element) itnext();

// do something

}

5对某节点下的所有子节点进行遍历。

for(Iterator it=rootelementIterator();ithasNext();){

Element element = (Element) itnext();

// do something

}

6在某节点下添加子节点。

Element ageElm = newMemberElmaddElement("age");

7设置节点文字。

ageElmsetText("29");

8删除某节点。

parentElmremove(childElm);// childElm是待删除的节点,parentElm是其父节点

三、属性相关。

1取得某节点下的某属性

Element root=documentgetRootElement();

Attribute attribute=rootattribute("size");// 属性名name

2取得属性的文字

String text=attributegetText();也可以用:

String text2=rootelement("name")attributeValue("firstname");这个是取得根节点下name字节点的属性firstname的值

3遍历某节点的所有属性

Element root=documentgetRootElement();

for(Iterator it=rootattributeIterator();ithasNext();){

Attribute attribute = (Attribute) itnext();

String text=attributegetText();

Systemoutprintln(text);

}

4设置某节点的属性和文字。

newMemberElmaddAttribute("name", "sitinspring");

5设置属性的文字

Attribute attribute=rootattribute("name");

attributesetText("sitinspring");

6删除某属性

Attribute attribute=rootattribute("size");// 属性名name

rootremove(attribute);

public static void readDom(String path) {

try {

SAXBuilder builder = new SAXBuilder();

Document doc = builderbuild(path);

Element ele = docgetRootElement();

String rootName = elegetName();

//Header 节点

Element headerEle = elegetChild("Header");

String docVer = headerElegetChild("DocumentVersion")getValue();

String idFilter = headerElegetChild("MerchantIdentifier")getValue();

//MessageType 节点

String mType = elegetChild("MessageType")getValue();

//Message 节点

List messages = elegetChildren("Message");

//其他节点仿照上面,这里只解析Item节点

for(int i=0;i<messagessize();i++)

{

List itemList = ((Element)messagesget(i))getChild("OrderReport")getChildren("Item");

for(int j=0;j<itemListsize();j++)

{

//此处仿照上面的方法依次来解析Item节点的数据

}

}

} catch (JDOMException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

}

我估计是要求按WCF模式下,利用NHibernate的架构方式组合

首先NHibernate里面有object-relation map 的xml

而WCF可以生成domainService,所以,一个是处于数据库层,一个是处于数据访问层

但是这两种方式的组合,我还没弄过,就在这里给你提一下吧

仔细看

2An object-relation map for use by a object-relation system (or a ‘decorated’ domain model) such as NHibernate or EntityFramework/LINQ

是说你要讲数据库表,映射成有映射关系的NHibernate 模式,或EntityFramework/LINQ模式,可以任选其一,那么就可以选择任意一种模式了

另外,团IDC网上有许多产品团购,便宜有口碑

Element e = new Element("root");//根节点

Element ele = new Element("Class");//Class节点

elesetAttribute("name","二年1班");//为class节点增加属性为name,值为二年一班的节点

以上就是关于java 关于读取xml文件的问题全部的内容,包括:java 关于读取xml文件的问题、关于jdom读取xml文件、JAVA中如何遍历xml,取出 键、值传进Map里。(考虑xml中的子节点的问题)用递归写。 求救!谢谢了!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9759928.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存