我以前从未处理过XML,所以我不确定如何在XML文件中处理CDATA。我在节点,父母,孩子节点,nList等迷路了。通过DOM解析器从XML处理CDATA
任何人都可以告诉我,我的问题是从这些代码片段?
我的getTagValue()
方法适用于除“详细信息”之外的所有标签,它是包含CDATA的标签。
.....
NodeList nList = doc.getElementsByTagName("Assignment");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
results = ("Class : " + getTagValue("ClassName", eElement)) +
("Period : " + getTagValue("Period", eElement)) +
("Assignment : " + getTagValue("Details", eElement));
myAssignments.add(results);
}
}
.....
private String getTagValue(String sTag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();
Node nValue = (Node) nlList.item(0);
if((CharacterData)nValue instanceof CharacterData)
{
return ((CharacterData) nValue).getData();
}
return nValue.getNodeValue();
}
除了波格丹出色的解释,如果你可以使用(XOM)DOM4J,等等,你可能会因此变得更好。 – 2012-04-07 20:01:38