有两篇文章说的非常好,在IBM上:
1.利用 Java 技术进行 XML 编程,第 1 部分
http://www-900.cn.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle/645C88257162286CC8256E350021E615?OpenDocument
2.利用 Java 技术进行 XML 编程,第 2 部分
http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/xml-onlinecourse-bytitle/D12DBCC391F769F1C8256EDD00080ECE?OpenDocument
看文章可能需要你登录一下,如果没有注册一个好了:)
1.利用 Java 技术进行 XML 编程,第 1 部分
http://www-900.cn.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle/645C88257162286CC8256E350021E615?OpenDocument
2.利用 Java 技术进行 XML 编程,第 2 部分
http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/xml-onlinecourse-bytitle/D12DBCC391F769F1C8256EDD00080ECE?OpenDocument
看文章可能需要你登录一下,如果没有注册一个好了:)
解决方案 »
- jsp和html注释
- ssh级联删除 问题
- java语法探讨问题
- 简单几道J2EE题目,,,哪位牛人看看先...
- 我在MyEclipse6.0添加一个hibernate但访问不到数据库?谢谢各位前辈
- discuz 集成 javaee web项目,从discuz端修改密码同步
- 在J2EE系统中EJB究竟起到多大的作用,而现在还有一些像JDO, Hibernate,他们又有什么差别,他们又是如何在多表查询中起到作用的呢
- 初学java,第一个java程序helloworld都宣告失败!
- EJB1.1和EJB2.0在哪些方面有区别,或者说改进
- findbugs3.0 安装失败
- ********** JBX 里面配置 Web Logic ,对 domian 不懂 *********
- 百分求解,关于设备监控
这个好实现,用jdom的xpath就可以搞定,如下:
public String getElementValue(Document doc, String elementName) throws JDOMException {
return (String) XPath.selectSingleNode(doc, "//" + elementName);
}但“更新xml文档(更新给出的接点)”这样的需求,我还是没能理解
不妨把你认为应该是的方法参数和返回值写下来,再把要实现的功能详细说一说
</book>
这样的,只要穿进去bookList,book,author,name这样的话,就能把"王五"改成name
应该怎么写??如果要是在没有的基础上增加,应该怎么办?就是在加个元素。
帮帮忙了,我以前从来没有写过操作xml的程序。
应该是
public String getElementValue(Document doc, String elementName) throws JDOMException {
return (String) XPath.selectSingleNode(doc.getRootElement(), "//" + elementName);
}
一个方法写错两次下面是更新后的
并添加了实现第二个功能的方法
api为jdom b9 public String getElementValue(Document doc, String elementName) throws JDOMException {
return ((Element) XPath.selectSingleNode(doc.getRootElement(), "//" + elementName)).getTextTrim();
}
//修改某个Element的值
//如果该Element不存在,则先添加
//参数说明:
//doc org.jdom.Document 被修改的xml对象
//xpath java.lang.String 想要修改的Element路径,采用“xxx/xxx/xxx”的形式
//value java.lang.String 想要修改的Element的值
//注:本方法为demo,没有涉及任何异常处理
public void modifyElement(Document doc, String xpath, String value) throws JDOMException {
String[] pathes = xpath.split("/");
Element tempEle = null;
String path = null;
for (int i = 0; i < pathes.length; i++) {
path = pathes[i];
if (tempEle == null) {
tempEle = (Element) XPath.selectSingleNode(doc.getRootElement(), "//" + path);
if (tempEle == null) {
tempEle = new Element(path);
doc.getRootElement().addContent(tempEle);
}
} else if (tempEle.getChild(path) != null) {
tempEle = tempEle.getChild(path);
} else {
tempEle.addContent(new Element(path));
tempEle = tempEle.getChild(path);
}
}
tempEle.setText(value);
}
java.lang.NoClassDefFoundError: org/saxpath/SAXPathException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at org.jdom.xpath.XPath.newInstance(XPath.java:126)
at org.jdom.xpath.XPath.selectSingleNode(XPath.java:368)
at Test.getElementValue(Test.java:52)
at Test.main(Test.java:49)
Exception in thread "main"
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;
public class Test {
public static void main(String[] args) throws Exception {
String fileName = System.getProperty("user.dir");
String trace = fileName+"\\sampleA.xml";
SAXBuilder builder = new SAXBuilder();
Document doc =builder.build(trace);
String ss=getElementValue(doc,"ID");
}
public static String getElementValue(Document doc, String elementName) throws JDOMException {
return ((Element) XPath.selectSingleNode(doc.getRootElement(), "//" + elementName)).getTextTrim();
}}
出现错误,是什么原因?
去下载最新的jdom api吧
应该已经集成了我用的jdom b9 + dom4j-full.jar
后者包含了jdom需要的用以支持xpath的jar包
用的工具是eclipse2.1
把它加入到eclipese项目的classpath中