我创建了一个 Web 服务,如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <todoLists>
- <todoList>
<productId>smthig</productId>
<siteCode>smthing</siteCode>
<subDeptId>smthing</subDeptId>
</todoList>
</todoLists>
我正在尝试使用下面的代码使用 DOM 解析器来解析它,我得到 nodeList.getLength() = 20 但没有得到元素的值。它显示为 null 我也尝试了 SAX 解析器,但这也给出了 null . 网络服务有什么问题吗?请建议。
public class XMLParsingDOMExample extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Create a new layout to display the view */
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(1);
/** Create a new textview array to display the results */
TextView category[];
try {
URL url = new URL(
"http://xxxxxx:8080/webservicedemo/rest/todo");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("todoList");
System.out.println("null 1");
/** Assign textview array lenght by arraylist size */
category = new TextView[nodeList.getLength()];
System.out.println("null 122 nodeList.getLength()" +nodeList.getLength());
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
category[i] = new TextView(this);
Element fstElmnt = (Element) node;
category[i].setText("Name = "
+ fstElmnt.getAttribute("siteCode"));
layout.addView(category[i]);
System.out.println("null 551");
}
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
/** Set the layout view to display */
setContentView(layout);
}
public class RSSAdapter extends BaseAdapter {
Element rootElement;
public RSSAdapter(Element rootElement) {
this.rootElement = rootElement;
}
public int getCount() {
// get the count of children of the root element
return 0;
}
public Object getItem(int position) {
// get the child identified by the position,
// this is the important part where you
// want to get the right child representing the RSS data that you want to get
return null;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// implement your view here....
return null;
}
}
}