在项目中调用了1个远程的webservice接口,该接口返回1个document对象,然后我对他进行解析的时候,解析不出来,求各位大大帮忙,看看是什么原因。
代码如下:Object[] results = client.invoke("queryObjectOut", new Object[]{"01",jkxlh,"01111",queryXmlDoc});
String r = results[0].toString();
Document d = (Document) results[0];
NodeList nodeList = document.getElementsByTagName("student");
for(int i=0;i<nodeList.getLength();i++){
StringBuilder sb = new StringBuilder();
sb.append("姓名:"+document.getElementsByTagName("name").item(i).getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("年龄:"+document.getElementsByTagName("age").item(i).getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("性别:"+document.getElementsByTagName("sex").item(i).getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("地址:"+document.getElementsByTagName("address").item(i).getFirstChild().getNodeValue());
System.out.println(sb.toString());
这样做 查询结果为空,我打印nodelist.length为0。然而用这个方法又能打印出xml全部内容,代码如下:System.out.println("返回XML"+d.getFirstChild().getFirstChild().getTextContent());
我想问 我想取到 xml文件里面 这些字段的信息,该如何做呢?
代码如下:Object[] results = client.invoke("queryObjectOut", new Object[]{"01",jkxlh,"01111",queryXmlDoc});
String r = results[0].toString();
Document d = (Document) results[0];
NodeList nodeList = document.getElementsByTagName("student");
for(int i=0;i<nodeList.getLength();i++){
StringBuilder sb = new StringBuilder();
sb.append("姓名:"+document.getElementsByTagName("name").item(i).getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("年龄:"+document.getElementsByTagName("age").item(i).getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("性别:"+document.getElementsByTagName("sex").item(i).getFirstChild().getNodeValue());
sb.append(" , ");
sb.append("地址:"+document.getElementsByTagName("address").item(i).getFirstChild().getNodeValue());
System.out.println(sb.toString());
这样做 查询结果为空,我打印nodelist.length为0。然而用这个方法又能打印出xml全部内容,代码如下:System.out.println("返回XML"+d.getFirstChild().getFirstChild().getTextContent());
我想问 我想取到 xml文件里面 这些字段的信息,该如何做呢?
NodeList nodeList = document.getElementsByTagName("student"); 是这个问题导致的吗?
<information>
<person>
<name>张三</name>
<age>19</age>
<job>软件工程师</job>
<employ-date>
<day>12</day>
<month>12</month>
<year>1989</year>
</employ-date>
</person>
<person>
<name>李四</name>
<age>33</age>
<job>测试工程师</job>
<employ-date>
<day>10</day>
<month>9</month>
<year>2010</year>
</employ-date>
</person>
<person>
<name>王五</name>
<age>28</age>
<job>客服工程师</job>
<employ-date>
<day>6</day>
<month>9</month>
<year>2001</year>
</employ-date>
</person>
<person>
<name>赵六</name>
<age>33</age>
<job>售前工程师</job>
<employ-date>
<day>11</day>
<month>7</month>
<year>2000</year>
</employ-date>
</person>
<person>
<name>孙七</name>
<age>27</age>
<job>项目经理</job>
<employ-date>
<day>6</day>
<month>8</month>
<year>2010</year>
</employ-date>
</person>
<person>
<name>龙五</name>
<age>39</age>
<job>总经理</job>
<employ-date>
<day>3</day>
<month>4</month>
<year>1987</year>
</employ-date>
</person>
</information>
package com.xiong.dom;
import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class XMLReader
{
public static void main(String[] args)
{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=null;
try
{
builder=dbf.newDocumentBuilder();
}
catch(Exception ex)
{
ex.printStackTrace();
}
Document doc=null;
try
{
doc=builder.parse(new File("E:"+File.separator+"webstudy"+File.separator+"Information.xml"));
}
catch(Exception ex)
{
ex.printStackTrace();
}
NodeList nodelist=doc.getElementsByTagName("person");
for(int i=0;i<nodelist.getLength();i++)
{
Element link=(Element)nodelist.item(i);
System.out.println("姓名:"+link.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
System.out.println("年龄:"+link.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
System.out.println("职业:"+link.getElementsByTagName("job").item(0).getFirstChild().getNodeValue());
Element employdate=(Element)link.getElementsByTagName("employ-date").item(0);
String day=employdate.getElementsByTagName("day").item(0).getFirstChild().getNodeValue();
String month=employdate.getElementsByTagName("month").item(0).getFirstChild().getNodeValue();
String year=employdate.getElementsByTagName("year").item(0).getFirstChild().getNodeValue();
System.out.println("雇佣日期:"+year+"-"+month+"-"+day);
}
}
}