看起来像我需要帮助了! : -/Java/Jsp XML Dom
我试着去阅读与Java/JSP这个XML文件:
<?xml version="1.0" encoding="iso-8859-1" ?>
<universal_campaign>
<campaign_details>
<campaign_id></campaign_id>
<campaign_title>Test Campaign</campaign_title>
<campaign_sdate>2010-01-21</campaign_sdate>
<campaign_edate>2010-01-25</campaign_edate>
<campaign_priority>Normal</campaign_priority>
</campaign_details>
<campaign_schedule>
<schedule_sdate>2010-01-25</schedule_sdate>
<schedule_edate>2010-01-30</schedule_edate>
<schedule_priority>Normal</schedule_priority>
<schedule_content>
<content_name>Wallpaper_A</content_name>
<content_filename>WP_A.jpg</content_filename>
</schedule_content>
<schedule_content>
<content_name>Screensaver</content_name>
<content_filename>SCS.gif</content_filename>
</schedule_content>
<schedule_zone>universal.001 test 001</schedule_zone>
<schedule_zone>universal.001 test 002</schedule_zone>
<schedule_zone>universal.001 test 003</schedule_zone>
</campaign_schedule>
</universal_campaign>
这里是我的Java/JSP代码:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(fileName);
NodeList nl, nl2;
NodeList campaign_details = doc.getElementsByTagName("universal_campaign");
String res = "";
for(int i = 0;i<campaign_details.getLength();i++){
nl = campaign_details.item(i).getChildNodes();
for(int j = 0; j<nl.getLength();j++){
nl2 = nl.item(j).getChildNodes();
for(int k = 0; k<nl2.getLength();k++){
res += nl2.item(k).getNodeName()+": "+nl2.item(k).getNodeValue()+"<br />";
}
}
}
但是当我输出字符串资源,我得到:
#text:
campaign_id: null
#text:
campaign_title: null
#text:
campaign_sdate: null
#text:
campaign_edate: null
#text:
campaign_priority: null
#text:
#text:
schedule_sdate: null
#text:
schedule_edate: null
#text:
schedule_priority: null
#text:
schedule_content: null
#text:
schedule_content: null
#text:
schedule_zone: null
#text:
schedule_zone: null
#text:
schedule_zone: null
#text:
而且我不明白这一点...的getNodeName()如何返回节点的名称,但getNodeValue()返回null ....? 请帮助我,我已经做了很多的搜索和在这里发帖之前失败的尝试,但是毫无效果....: -/
感谢它的工作!但我仍然在输出中显示“#text:”为什么? – Piero
由于XML中的行返回。该空间被视为文本节点,除空白字符外没有任何内容。所以如果你知道你想要哪些元素,你最好只对这些元素进行过滤。 –
非常感谢你的时间! – Piero