使用Dom4j在指定的节点下添加节点如何做 ?

LLLDDDPPP 2012-06-23 02:24:57
<?xml version="1.0" encoding="UTF-8"?>
<ETLs><ETL><ETLId>1</ETLId><ETLName>ETL1</ETLName><ETLRecordSize>1000</ETLRecordSize><SourceDataSourceType>AdminRemoteDatabase</SourceDataSourceType><SourceId>0001</SourceId><SourceName>配置1</SourceName><SourceTable>users</SourceTable><SourceTableSQL>select usersId,usersName from user</SourceTableSQL><TargetDataSourceType>LocalDatabase</TargetDataSourceType><TargetId>0001</TargetId><TargetName>配置1</TargetName><TargetTable>user</TargetTable><TargetTableSQL>insert user (usersId,usersName)</TargetTableSQL><Sort>1</Sort><Columns><Column><ColumnId>1</ColumnId><SourceField>usersId</SourceField><SourceType>uniqueidentifier</SourceType><SourceLength>16</SourceLength><SourceNull>false</SourceNull><SourceDefault>NULL</SourceDefault><SourcePrecision/><SourceScale>0</SourceScale><TargetField>userId</TargetField><TargetType>varchar</TargetType><TargetLength>36</TargetLength><TargetNull>true</TargetNull><TargetDefault>NULL</TargetDefault><TargetPrecision/><TargetScale/></Column></Columns></ETL></ETLs>


我现在有以上的XML文件 !我现在想要在ETLId=1的项下面添加一个Column节点项! 这个如何做啊 ? 各位大神 ! 在线等 ~
...全文
659 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds27 2012-07-09
  • 打赏
  • 举报
回复
把document.add(element); 这句去掉就行了,这个句子一点用都没有。
LLLDDDPPP 2012-06-23
  • 打赏
  • 举报
回复
File file = new File(InfoPath.ADMINETL);
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(file);
document.setXMLEncoding("UTF-8");

Element root = document.getRootElement(); // 获得根元素
Element element = (Element) root.selectNodes("/ETLs/ETL[ETLId='1']/Columns").get(0);

Element itemElement = DocumentHelper.createElement("Column");
element.add(itemElement);

Element sourceTypeElement = DocumentHelper.createElement("SourceType");
sourceTypeElement.setText("ethan");
itemElement.add(sourceTypeElement);

// System.out.println(element.asXML());
document.add(element);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(document.asXML());


我初步写出来一个,感觉没问题啊 ! 可是报错呢 !



org.dom4j.IllegalAddException: The node "org.dom4j.tree.DefaultElement@743399 [Element: <Columns attributes: []/>]" could not be added to the branch "file:///D:/Tools/Workspaces/successETL/WebRoot/WEB-INF/classes/config/xml/AdminETL.xml" because: Cannot add another element to this Document as it already has a root element of: ETLs
at org.dom4j.tree.AbstractDocument.checkAddElementAllowed(AbstractDocument.java:241)
at org.dom4j.tree.AbstractDocument.add(AbstractDocument.java:203)
at com.success.vo.Demo.main(Demo.java:33)
LLLDDDPPP 2012-06-23
  • 打赏
  • 举报
回复
Xml在这上面看的好像不是很清晰啊 !!建议大家先拷贝出来用EditPlus看下 !! 在线等哈 !

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧