xml读取问题出错

jayqean 2010-10-30 11:54:38
我用jdom 和dom4j都无法解析形如<message:model></message:model>作为根节点的xml文件
Caused by: org.xml.sax.SAXParseException: The prefix "message" for element "message:model" is not bound.
公司无法上baidu google 木有办法
...全文
210 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
jayqean 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 caofaping 的回复:]
Java code

private static void analysisXml(String path) {
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(path);
List ……
[/Quote]
针对我那问题,我jdom和dom4j都试过的,结果是必须要加个xml namespace
caofaping 2010-11-02
  • 打赏
  • 举报
回复

private static void analysisXml(String path) {
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(path);
List list = null;
Iterator iter = null;
//想获取的标签
list = document.selectNodes("//student");
iter = list.iterator();
while (iter.hasNext()) {
Element element = (Element) iter.next();
//如果student里面还有字标签,继续迭代
Iterator iterator = element.elementIterator("id");
while (iterator.hasNext()) {
Element titleElement = (Element) iterator.next();
if (titleElement.getText().equals("Java"))
titleElement.setText("Create");
}
}
XMLWriter output = new XMLWriter(new FileWriter(new File(path)));
output.write(document);
output.close();
}

catch (DocumentException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}

}



楼主个参考下,dom4j的,不知道楼主的jaxen-1.1-beta-6.jar包导入了么,不然会报错
jayqean 2010-11-02
  • 打赏
  • 举报
回复
搞定了

<spec:model xmlns:spec="http://csdn.net/model">

加个命名空间就KO了
jayqean 2010-11-02
  • 打赏
  • 举报
回复

SAXBuilder sb = new SAXBuilder();//建立构造器
Document doc = sb.build(new FileInputStream(file));//读入指定文件

在bulid的时候就报我说的那错了,自己在顶下。
jayqean 2010-11-02
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<spec:model NeName="BSC6900" NeNrmVersion="1.00" NeVersion="BSC6900V900R013C00" NrmName="BSC6900_Model">
给的xml文件就是这样开始的,老感觉是少了点什么.
jayqean 2010-11-02
  • 打赏
  • 举报
回复
页面打不开,自己慢慢搞吧,xpath好久没用了
jayqean 2010-11-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 madfatso 的回复:]
Java code
XPath xpath = XPath.newInstance("//message");//路径
[/Quote]
哥们 能具体点么,谢了
madFatso 2010-11-02
  • 打赏
  • 举报
回复
XPath xpath = XPath.newInstance("//message");//路径 
jayqean 2010-11-02
  • 打赏
  • 举报
回复
纠结,分给低了么,都木有人来,还不是这一个问题,一次性解析6M的xml花了878020ms,这效率。。。。
killuaxe 2010-11-01
  • 打赏
  • 举报
回复
你可以去学研找找.
jayqean 2010-11-01
  • 打赏
  • 举报
回复
都没人来看下的,自己顶下
jayqean 2010-10-30
  • 打赏
  • 举报
回复
没特殊符号,就一个最普通的xml 只是像我说的,根节点上 弄成这样了<message:model></message:model>
形如:<aop:config />
bf234511171 2010-10-30
  • 打赏
  • 举报
回复
你是不是用到什么保留字或者特殊符号了?我不是很懂就分析下!
jayqean 2010-10-30
  • 打赏
  • 举报
回复
如果是根节点改成<message></message>读取时没问题的.
zhuyouyong 2010-10-30
  • 打赏
  • 举报
回复
ding[Quote=引用楼主 jayqean 的回复:]
我用jdom 和dom4j都无法解析形如<message:model></message:model>作为根节点的xml文件
Caused by: org.xml.sax.SAXParseException: The prefix "message" for element "message:model" is not bound.
公司无法上baidu google 木有办法
[/Quote]
wc313887865 2010-10-30
  • 打赏
  • 举报
回复
...
s0s0s0s 2010-10-30
  • 打赏
  • 举报
回复
message是命名空间
model是该命名空间下的元素
funfun5433 2010-10-30
  • 打赏
  • 举报
回复
你先用个xmlspy 检查一下xml软件是否符合规范
laxxx6 2010-10-30
  • 打赏
  • 举报
回复
好像是说前罪message没有和message:model邦定
加载更多回复(1)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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