首先请看xml
-----------------<?xml version="1.0" encoding="GB2312" standalone="no"?>
<公司人员 xmlns:p1="first://www.dlrin.com" xmlns:p2="second://www.dlrin.com">
<p1:张三>1989年出生,毕业于上海交通大学</p1:张三>
<p2:张三>1972年出生,毕业于中国科学技术大学</p2:张三>
<李四>1985年出生,毕业于北京大学</李四>
</公司人员>
---------------------
接着,再看看我的Java代码:public class test {
public static void main(String[] args) throws Exception{
DocumentBuilderFactory docbudfact = DocumentBuilderFactory.newInstance() ;
DocumentBuilder docbud = docbudfact.newDocumentBuilder() ;
Document doc = docbud.parse(new File("a.xml"));
Element element = doc.getDocumentElement();
NodeList nodelist = element.getElementsByTagNameNS("second://www.dlrin.com", "张三");
findNodeMessage(nodelist);
nodelist = element.getElementsByTagName("李四");
findNodeMessage(nodelist);
} public static void findNodeMessage(NodeList nodelist) {
int size = nodelist.getLength() ;
for(int k=0 ; k<size ; k++ ){
Node node = nodelist.item(k) ;
String name = node.getNodeName() ;
int index = name.indexOf(":");
if(index != -1){
name = name.substring(index+1) ;
}
String content = node.getTextContent() ;
content = content.trim() ;
System.out.println(name+":"+content);
}
}
}运行,结果为:李四:1985年出生,毕业于北京大学问题:
为什么张三的信息没有出现,我可以用命名空间查询本地名称的方法查询节点啊,怎么张三的结果还是不出来?
-----------------<?xml version="1.0" encoding="GB2312" standalone="no"?>
<公司人员 xmlns:p1="first://www.dlrin.com" xmlns:p2="second://www.dlrin.com">
<p1:张三>1989年出生,毕业于上海交通大学</p1:张三>
<p2:张三>1972年出生,毕业于中国科学技术大学</p2:张三>
<李四>1985年出生,毕业于北京大学</李四>
</公司人员>
---------------------
接着,再看看我的Java代码:public class test {
public static void main(String[] args) throws Exception{
DocumentBuilderFactory docbudfact = DocumentBuilderFactory.newInstance() ;
DocumentBuilder docbud = docbudfact.newDocumentBuilder() ;
Document doc = docbud.parse(new File("a.xml"));
Element element = doc.getDocumentElement();
NodeList nodelist = element.getElementsByTagNameNS("second://www.dlrin.com", "张三");
findNodeMessage(nodelist);
nodelist = element.getElementsByTagName("李四");
findNodeMessage(nodelist);
} public static void findNodeMessage(NodeList nodelist) {
int size = nodelist.getLength() ;
for(int k=0 ; k<size ; k++ ){
Node node = nodelist.item(k) ;
String name = node.getNodeName() ;
int index = name.indexOf(":");
if(index != -1){
name = name.substring(index+1) ;
}
String content = node.getTextContent() ;
content = content.trim() ;
System.out.println(name+":"+content);
}
}
}运行,结果为:李四:1985年出生,毕业于北京大学问题:
为什么张三的信息没有出现,我可以用命名空间查询本地名称的方法查询节点啊,怎么张三的结果还是不出来?
解决方案 »
- Java JFrame或者JDialog如何实现任务栏图标的高亮闪烁,像QQ那种
- 急急急急急!!!关于使用第三方插件从Oracle导出Excel表格的问题,高分在线等!!!进者有分!!
- 为什么说Java中的引用/指针无法访问?不是可以用toString()显示引用地址么?
- swing中如何判断当前的panel
- 十万火急!请教问题,如何让jtree中每个node对应一个图形
- 求洗牌算法:将52张牌等概率的放在52个位置
- 什么地方有JBuilder 中文版下载
- 初学者要看什么书好!
- java中如何将负数转成无符号数?
- 新手求助,关于export导出
- 怎么用JAVA实现Access数据库的备份和恢复?
- 怎么实现else判断结束返回上一个if语句???
还有去别的。。
.newInstance();
try {
DocumentBuilder docbud = docbudfact.newDocumentBuilder();
Document doc = docbud.parse(new File("a.xml"));
Element element = doc.getDocumentElement();
NodeList nodelist = element.getElementsByTagNameNS(
"second://www.dlrin.com", "p1:张三");
//"second://www.dlrin.com", "p2:张三");
nodelist = element.getElementsByTagName("张三");
findNodeMessage(nodelist);
nodelist = element.getElementsByTagName("李四");
findNodeMessage(nodelist);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
采用你的方法,也只能得到 李四 的信息 。
我想要知道“second://www.dlrin.com”的张三的信息,怎么做到呢 ?
//1989年出生,毕业于上海交通大学
NodeList nodelist = element.getElementsByTagNameNS( "second://www.dlrin.com", "p1:张三");
//张三>1972年出生,毕业于中国科学技术大学
NodeList nodelist = element.getElementsByTagNameNS( "second://www.dlrin.com", "p2:张三");