我用netbeans操作xml,发现在doc里面查找element出现错误。程序应该没问题,所以怀疑是不是需要DTD文件啊?我现在是只有xml的文件,手写的。每次validate都是出现错误,说root 未声明。
所以 想请教 操作xml的时候必须要DTD嘛?还是在netbeans里面比较特殊?谢谢
所以 想请教 操作xml的时候必须要DTD嘛?还是在netbeans里面比较特殊?谢谢
解决方案 »
- 大神们进来帮小弟看看,百度 谷歌 没有查到我想要的
- 3600个头13000的腿
- java高手 帮忙
- java 里有没有类似vb里的replace的函数,用来生成编码过的文本,控制格式
- 请问大家有没有碰到jbuilder8写jsp时,无法保存,提示字符集非法。
- 到底错在哪? 在线等待~~~急
- 关于播放声音文件!JMF
- 在线等待!请帮忙!
- to skyyoung(路人甲)/SwordAllen(落花生):你们是不是有用JAVA的CHARTAPPLET画图的SOURCE?可否mail我一份
- 关于java的事件问题,如何在程序中使一个button被click,从而引发这个button的事件处理代码????
- 将文件路径作为参数时(String类型),编译提示非法转义字符
- 为什么对于子类方法不用处理异常??
NodeList nodelist = doc.getElementsByTagName("Movements");
NodeList children;
if(nodelist.item(0)!= null){
System.out.println(""+nodelist.getLength()); //打印正确
System.out.println(""+nodelist.item(0));//打印正确
System.out.println(nodelist.item(0).getNodeName());//打印正确
if(nodelist.item(0).getLastChild()!=null)
System.out.println(nodelist.item(0).getLastChild().getNodeName().toString());//打印错误,出现#text
children = nodelist.item(0).getChildNodes();
System.out.println("x"+children.getLength());//打印错误
System.out.println(children.item(0).getNodeName());//打印错误,出现#text
}
else{
System.out.println("Check your 'Position' tag in the XML!");
}
children = nodelist.item(0).getChildNodes();
for(int i =0;i<nodelist.getLength();i++){
System.out.println( children.item(i).getNodeName());
if(children.item(i).getChildNodes().item(0)!= null){ words = words.concat(children.item(i).getChildNodes().item(0).getTextContent());
}
else{
System.out.println("Check your 'Position' tag in the XML!");
}
}
return words;
}
DTD只是约束XML的 与java 没有多大关系!另外 ,
if(nodelist.item(0).getLastChild()!=null) //这里判断child存在么?
System.out.println(nodelist.item(0).getLastChild().getNodeName().toString());//打印错误,出现#text // getNodeName() 得到了name 为什么还要 toString()有什么意义么?
最后,root没有声明!这个错误我没有见过~ 不过你可以试试这段代码,也许有用!
<!DOCTYPE 根节点名>
问题最终被我发现了:打印的错误在于,在xml中即使是回车或空格也算一个子节点,所以我本来认为的第一个节点其实是回车,于是出现了意想不到的打印结果。