是错误的,parser.parse(textXml);传递是文件名字,而不是一个符合xml的String对象
应该是parser.parse(new InputSource(new StringReader(testxml));
应该是parser.parse(new InputSource(new StringReader(testxml));
解决方案 »
- 用apache的FTPClient如何修改FTP上面的文件名
- 求救,这种是应该用触发器吗?还是数据库只负责原始数据存储呢?
- 请问在Sturts 2的标签中如何进行判断?
- jsp超链向action中传中文参数,最后一个字变乱码,请高手指点下
- 急!关于如何在jsp页面里使用JavaBean里的方法的问题 !
- 怎样实现选单连动??????
- 如何将字符串1990-11-20转化成日期型1990-11-20?
- 从概念角度, 请简述性总结一下字符集问题, 或者修改我的总结(我的总结是错误的), 非常非常非常谢谢;
- java程序,在浏览器中查看文件中找不到项目cookie文件,求大神
- java程序如何调用webservice接口,实现发送短信功能
- jsp连接oracle( 不用安装jdbc 又不用配odbc)只用程序来完成????
- Applet与Servlet通信的奇怪问题
parser.parse(new InputSource(new StringReader(testxml)));
dbf.setValidating(true);
DocumentBuilder db = dbf.newDocumentBuilder();
db.setErrorHandler(errorhandler);
doc = db.parse(file);
doc.normalize();
String textXml = null;
textXml = "<note>";
textXml = textXml + "<to>aaa</to><from>bbb</from><heading>ccc</heading><body>ddd</body>";
textXml = textXml + "</note>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
Document doc = parser.parse(new InputSource(new java.io.StringReader(textXml)));
NodeList names = doc.getElementsByTagName("note");
Node nodetagName = null;
for(int k=0;k<names.getLength();k++)
{
nodetagName = names.item(k);
System.out.println(nodetagName.getNodeValue());
}
Element toElement = (Element)doc.getElementsByTagName("to").item(0);
System.out.println(toElement.getFirstChild().getNodeValue());
//本来应当加入判断是否null的
稍微学一下DOM SAX
其实java 开发使用JDOM比较好,况且很容易。像你的code:
String textXml = null;
textXml = "<note>";
textXml = textXml + "<to>aaa</to><from>bbb</from><heading>ccc</heading><body>ddd</body>";
textXml = textXml + "</note>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = factory.newDocumentBuilder();
Document doc = parser.parse(textXml);
NodeList names = doc.getElementsByTagName("note");
System.out.println(names.item(1));
System.out.println(names.item(2));
System.out.println(names.item(3));
可以使用JDOM来做 简单多了,还有数据检查,强大易用。
public jdom_test() {
String textXml = null;
textXml = "<note>";
textXml = textXml +
"<to>aaa</to><from>bbb</from><heading>ccc</heading><body>ddd</body>";
textXml = textXml + "</note>";
SAXBuilder builder = new SAXBuilder();
Document doc = null;
Reader in= new StringReader(textXml);
try {
doc = builder.build(in);
Element root = doc.getRootElement();
List ls = root.getChildren();
for (Iterator iter = ls.iterator(); iter.hasNext(); ) {
Element el = (Element) iter.next();
if(el.getName().equals("to")){
System.out.println(el.getText());
}
}
}
catch (IOException ex) {
ex.printStackTrace();
}
catch (JDOMException ex) {
ex.printStackTrace();
}
}