0
我正在学习使用DOM解析XML文件,但是我好像被困在如何进入列表中更深的节点。 这是我使用的代码:在解析DOM时遇到了问题
Node n = nlist.item(i);
// get ID
Element element = (Element)n;
String id = element.getAttribute("id");
// create a student object
Student st = new Student(id);
// get child nodes
NodeList slist = n.getChildNodes();
for (int j = 0; j < slist.getLength(); j++) {
Node selement = slist.item(j);
if (selement.getNodeType() == Node.ELEMENT_NODE) {
String textval = selement.getTextContent();
if (selement.getNodeName().equals("FirstName"))
st.setFirstName(textval);
if (selement.getNodeName().equals("LastName"))
st.setLastName(textval);
if (selement.getNodeName().equals("Address"))
{
NodeList slist2 = n.getChildNodes();
for(int k = 0; k < slist2.getLength(); k++) {
Node selement2 = slist2.item(k);
if(selement2.getNodeName().equals("Street"))
对于一个XML文件,格式化,如:
<Student_Data>
<Student id="11111">
<FirstName>Joe</FirstName>
<LastName>Edwards</LastName>
<Address>
<Street>345 North</Street>
<City>Brea</City>
<State>CA</State>
<Zip>99999</Zip>
<Phone>(714) 444-4444</Phone>
</Address>
<Classes>
<Class crn="5555">
<Name>CIS 100</Name>
<Units>3</Units>
<Grade>A</Grade>
</Class>
<Class crn="7777">
<Name>CIS 111</Name>
<Units>4</Units>
<Grade>B</Grade>
</Class>
</Classes>
</Student>
我的输出找到的第一个和最后一个名字,但没有其他信息。
我得到那个的getChildren()是未定义元素 –
对不起,我糊涂了DOM2核心与新DOM4核心,提供了这种'element.children'属性。目前,这些新的DOM4功能仅在JavaScript中可用。所以,在你的情况下,你必须使用你一直使用的方法(比如'node.getChildNodes()')。我会编辑我的答案。 –