
用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中的子节点的问题)用递归写。 求救!谢谢了!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)