如何使用Java读取XML节点中的值数组

时间:2014-11-14 17:06:42

标签: java xml getelementsbytagname

我觉得这个问题很有意义。

我有以下xml:

<?xml version="1.0"?>
<ArrayOfstring xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <string>domain\coder1</string>    
  <string>domain\coder2</string>
</ArrayOfstring>

我正在尝试将这两个元素读入List。

如果我使用:

NodeList nList = doc.getElementsByTagName("ArrayOfstring");
....
szCoder = eElement.getElementsByTagName("string").item(i).getTextContent();

只获取“domain \ coder1”,因为我的列表只有一个值。 如果我尝试使用TagName为“string”,我会抛出一个nullpointer。

非常感谢任何帮助。

非常感谢提前

2 个答案:

答案 0 :(得分:0)

    Node nodeString = null;
    Node itemArray = null;
    NodeList listOfStringEle = null;
    NodeList nList = doc.getElementsByTagName("ArrayOfstring");
    for (int j = 0; j < nList.getLength(); j++) {
         itemArray = nList.item(j); //here all the ArrayOfStringElements
         listOfStringEle = itemArray.getChildNodes();
         for (int i = 0; i < listOfStringEle.getLength(); i++) {
                            nodeString = listOfStringEle.item(i); //here are the <string> nodes
                        }
    }

您需要遍历所有节点。要访问它们

答案 1 :(得分:0)

非常感谢上周五的快速回复。 我不得不改变&#34; ArrayOfstring&#34;是ChildNode的那个 - &#34;字符串&#34;

现在一切正常:)