import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Test { /**
* @param args
*/
public static void main(String[] args) {
try {
File file = new File("dongzuopian.xml");
//解析器工厂类
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//解析器
DocumentBuilder builder = factory.newDocumentBuilder();
//操作的Document对象
Document document = builder.parse(file);
//节点名
NodeList nodelist = document.getElementsByTagName("PROGFILE");
for(int i = 0; i<nodelist.getLength(); i++){
System.out.println("--------"+(i+1)+"---------");
System.out.println("电影名称:"+document.getElementsByTagName("progpackagename").item(i).getFirstChild().getNodeValue());
System.out.println("电影介绍 :"+document.getElementsByTagName("description").item(i).getFirstChild().getNodeValue());
// System.out.println("电影图片 :"+document.getElementsByTagName("column").item(i).getFirstChild().getNodeValue().toString());
System.out.println("电影演员 :"+document.getElementsByTagName("actors").item(i).getFirstChild().getNodeValue());
System.out.println("语种 :"+document.getElementsByTagName("audiolanguage").item(i).getFirstChild().getNodeValue());
System.out.println("图片 :"+document.getElementsByTagName("FILE").item(i).getAttributes().getNamedItem("FILENAME").toString());
}
List list=new ArrayList();
list.add(nodelist);
System.out.println(nodelist.getLength());
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}<?xml version="1.0" encoding="utf-8"?>
<root>
<column DEFCATCODE="dongzuopian" name="动作片" COUNTNUMB="30" COUNTONEPAGE="5"> //栏目CODE,栏目名称、节目包总个数、每页显示条数
<PROGPACKAGEINFO LNUM="" VALID_FROM="" VALID_TO="" VALID_FLAG="" PRODUCTNAME="" UPDATETIME="" DEFCATSEQ="">
<APP EPICODENUMBER="" PROGPACKAGEID="PPVP20091208102126000812" PROGPACKAGENAME="" PROGTYPE="" STYLEID=""
SUMFILESIZE="" UPDATEMANID="" UPDATETIME="" />
<METADATA>
<GP CHNAME="节目包描述" ENAME="Desc">
<progpackageid CHNAME="节目包ID"/>
<ptglobalid CHNAME="GLOBALID"/>
<progpackagename CHNAME="名称">谍影重重3 </progpackagename>
<titlebrief CHNAME="名称简写"/>
<actors CHNAME="演员">马特·达蒙茱莉亚·史提尔琼·艾伦</actors>
<countrydist CHNAME="国家/地区">美国</countrydist>
<director CHNAME="导演">保罗·格林加斯</director>
<subtitlelanguage CHNAME="字幕语种">简体中文</subtitlelanguage>
<epicodenumber CHNAME="集数"/>
<audiolanguage CHNAME="音频语种">英语</audiolanguage>
<issuedate CHNAME="发行日期">2007-07-25</issuedate>
<shootdate CHNAME="拍摄年代">2009</shootdate>
<subscriberstime CHNAME="开始期限">2009-12-01</subscriberstime>
<subscriberetime CHNAME="结束期限">2010-11-05</subscriberetime>
<description CHNAME="简介">他是一个没有国籍、没有身份、没有过去的人
</description>
</GP>
<GP CHNAME="附件" ENAME="appendix">
</GP>
</METADATA>
<PROGFILE>
<FILE FILECODE="H264MAIN" FILENAME="PRVE001.ts" FILETYPEID="H264" PROGFILEID="PRVE20091208092222000031010001" PROGRAMID="PRVE20091208092222000031"/>
<FILE FILECODE="PNG1" FILENAME="PPVP001.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010001" PROGRAMID=""/>
<FILE FILECODE="PNG2" FILENAME="PPVP002.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010002" PROGRAMID=""/>
<FILE FILECODE="PNG3" FILENAME="PPVP003.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010003" PROGRAMID=""/>
</PROGFILE>
</PROGPACKAGEINFO>
<PROGPACKAGEINFO LNUM="" VALID_FROM="" VALID_TO="" VALID_FLAG="" PRODUCTNAME="" UPDATETIME="" DEFCATSEQ="">
<APP EPICODENUMBER="" PROGPACKAGEID="PPVP20091208102126000812" PROGPACKAGENAME="" PROGTYPE="" STYLEID=""
SUMFILESIZE="" UPDATEMANID="" UPDATETIME="" />
<METADATA>
<GP CHNAME="节目包描述" ENAME="Desc">
<progpackageid CHNAME="节目包ID"/>
<ptglobalid CHNAME="GLOBALID"/>
<progpackagename CHNAME="名称">十月围成 </progpackagename>
<titlebrief CHNAME="名称简写"/>
<actors CHNAME="演员">文森特·莉亚·琼·艾伦</actors>
<countrydist CHNAME="国家/地区">美国</countrydist>
<director CHNAME="导演">保罗·格林加斯</director>
<subtitlelanguage CHNAME="字幕语种">简体中文</subtitlelanguage>
<epicodenumber CHNAME="集数"/>
<audiolanguage CHNAME="音频语种">英语</audiolanguage>
<issuedate CHNAME="发行日期">2007-07-25</issuedate>
<shootdate CHNAME="拍摄年代">2009</shootdate>
<subscriberstime CHNAME="开始期限">2009-12-01</subscriberstime>
<subscriberetime CHNAME="结束期限">2010-11-05</subscriberetime>
<description CHNAME="简介"> 巨星演绎精彩</description>
</GP>
<GP CHNAME="附件" ENAME="appendix">
</GP>
</METADATA>
<PROGFILE>
<FILE FILECODE="H264MAIN" FILENAME="PRVE002.ts" FILETYPEID="H264" PROGFILEID="PRVE20091208092222000031010001" PROGRAMID="PRVE20091208092222000031"/>
<FILE FILECODE="PNG1" FILENAME="PPVP005.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010001" PROGRAMID="1"/>
<FILE FILECODE="PNG2" FILENAME="PPVP20091208102126000812010006.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010002" PROGRAMID="2"/>
<FILE FILECODE="PNG3" FILENAME="PPVP20091208102126000812010007.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010003" PROGRAMID="3"/>
</PROGFILE>
</PROGPACKAGEINFO>
</column>
</root>
为什么我PROGFILE节点下的 图片和路径都不能获取到啊?请大家帮忙解决下 谢谢。
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Test { /**
* @param args
*/
public static void main(String[] args) {
try {
File file = new File("dongzuopian.xml");
//解析器工厂类
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//解析器
DocumentBuilder builder = factory.newDocumentBuilder();
//操作的Document对象
Document document = builder.parse(file);
//节点名
NodeList nodelist = document.getElementsByTagName("PROGFILE");
for(int i = 0; i<nodelist.getLength(); i++){
System.out.println("--------"+(i+1)+"---------");
System.out.println("电影名称:"+document.getElementsByTagName("progpackagename").item(i).getFirstChild().getNodeValue());
System.out.println("电影介绍 :"+document.getElementsByTagName("description").item(i).getFirstChild().getNodeValue());
// System.out.println("电影图片 :"+document.getElementsByTagName("column").item(i).getFirstChild().getNodeValue().toString());
System.out.println("电影演员 :"+document.getElementsByTagName("actors").item(i).getFirstChild().getNodeValue());
System.out.println("语种 :"+document.getElementsByTagName("audiolanguage").item(i).getFirstChild().getNodeValue());
System.out.println("图片 :"+document.getElementsByTagName("FILE").item(i).getAttributes().getNamedItem("FILENAME").toString());
}
List list=new ArrayList();
list.add(nodelist);
System.out.println(nodelist.getLength());
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}<?xml version="1.0" encoding="utf-8"?>
<root>
<column DEFCATCODE="dongzuopian" name="动作片" COUNTNUMB="30" COUNTONEPAGE="5"> //栏目CODE,栏目名称、节目包总个数、每页显示条数
<PROGPACKAGEINFO LNUM="" VALID_FROM="" VALID_TO="" VALID_FLAG="" PRODUCTNAME="" UPDATETIME="" DEFCATSEQ="">
<APP EPICODENUMBER="" PROGPACKAGEID="PPVP20091208102126000812" PROGPACKAGENAME="" PROGTYPE="" STYLEID=""
SUMFILESIZE="" UPDATEMANID="" UPDATETIME="" />
<METADATA>
<GP CHNAME="节目包描述" ENAME="Desc">
<progpackageid CHNAME="节目包ID"/>
<ptglobalid CHNAME="GLOBALID"/>
<progpackagename CHNAME="名称">谍影重重3 </progpackagename>
<titlebrief CHNAME="名称简写"/>
<actors CHNAME="演员">马特·达蒙茱莉亚·史提尔琼·艾伦</actors>
<countrydist CHNAME="国家/地区">美国</countrydist>
<director CHNAME="导演">保罗·格林加斯</director>
<subtitlelanguage CHNAME="字幕语种">简体中文</subtitlelanguage>
<epicodenumber CHNAME="集数"/>
<audiolanguage CHNAME="音频语种">英语</audiolanguage>
<issuedate CHNAME="发行日期">2007-07-25</issuedate>
<shootdate CHNAME="拍摄年代">2009</shootdate>
<subscriberstime CHNAME="开始期限">2009-12-01</subscriberstime>
<subscriberetime CHNAME="结束期限">2010-11-05</subscriberetime>
<description CHNAME="简介">他是一个没有国籍、没有身份、没有过去的人
</description>
</GP>
<GP CHNAME="附件" ENAME="appendix">
</GP>
</METADATA>
<PROGFILE>
<FILE FILECODE="H264MAIN" FILENAME="PRVE001.ts" FILETYPEID="H264" PROGFILEID="PRVE20091208092222000031010001" PROGRAMID="PRVE20091208092222000031"/>
<FILE FILECODE="PNG1" FILENAME="PPVP001.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010001" PROGRAMID=""/>
<FILE FILECODE="PNG2" FILENAME="PPVP002.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010002" PROGRAMID=""/>
<FILE FILECODE="PNG3" FILENAME="PPVP003.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010003" PROGRAMID=""/>
</PROGFILE>
</PROGPACKAGEINFO>
<PROGPACKAGEINFO LNUM="" VALID_FROM="" VALID_TO="" VALID_FLAG="" PRODUCTNAME="" UPDATETIME="" DEFCATSEQ="">
<APP EPICODENUMBER="" PROGPACKAGEID="PPVP20091208102126000812" PROGPACKAGENAME="" PROGTYPE="" STYLEID=""
SUMFILESIZE="" UPDATEMANID="" UPDATETIME="" />
<METADATA>
<GP CHNAME="节目包描述" ENAME="Desc">
<progpackageid CHNAME="节目包ID"/>
<ptglobalid CHNAME="GLOBALID"/>
<progpackagename CHNAME="名称">十月围成 </progpackagename>
<titlebrief CHNAME="名称简写"/>
<actors CHNAME="演员">文森特·莉亚·琼·艾伦</actors>
<countrydist CHNAME="国家/地区">美国</countrydist>
<director CHNAME="导演">保罗·格林加斯</director>
<subtitlelanguage CHNAME="字幕语种">简体中文</subtitlelanguage>
<epicodenumber CHNAME="集数"/>
<audiolanguage CHNAME="音频语种">英语</audiolanguage>
<issuedate CHNAME="发行日期">2007-07-25</issuedate>
<shootdate CHNAME="拍摄年代">2009</shootdate>
<subscriberstime CHNAME="开始期限">2009-12-01</subscriberstime>
<subscriberetime CHNAME="结束期限">2010-11-05</subscriberetime>
<description CHNAME="简介"> 巨星演绎精彩</description>
</GP>
<GP CHNAME="附件" ENAME="appendix">
</GP>
</METADATA>
<PROGFILE>
<FILE FILECODE="H264MAIN" FILENAME="PRVE002.ts" FILETYPEID="H264" PROGFILEID="PRVE20091208092222000031010001" PROGRAMID="PRVE20091208092222000031"/>
<FILE FILECODE="PNG1" FILENAME="PPVP005.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010001" PROGRAMID="1"/>
<FILE FILECODE="PNG2" FILENAME="PPVP20091208102126000812010006.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010002" PROGRAMID="2"/>
<FILE FILECODE="PNG3" FILENAME="PPVP20091208102126000812010007.png" FILETYPEID="PNG" PROGFILEID="PPVP20091208102126000812010003" PROGRAMID="3"/>
</PROGFILE>
</PROGPACKAGEINFO>
</column>
</root>
为什么我PROGFILE节点下的 图片和路径都不能获取到啊?请大家帮忙解决下 谢谢。
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;import com.sun.org.apache.xpath.internal.XPathAPI;
public class Test { /**
* @param args
* @throws TransformerException
*/
public static void main(String[] args) throws TransformerException {
try {
File file = new File("E://a.xml");
//解析器工厂类
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
//解析器
DocumentBuilder builder = factory.newDocumentBuilder();
//操作的Document对象
Document document = builder.parse(file);
//节点名
NodeList nodelist = XPathAPI.selectNodeList(document,"root/column/PROGPACKAGEINFO");
System.out.println(nodelist.getLength());
for(int i = 0; i<nodelist.getLength(); i++){
System.out.println("--------"+(i+1)+"---------");
System.out.println("电影名称:"+document.getElementsByTagName("progpackagename").item(i).getFirstChild().getNodeValue());
System.out.println("电影介绍 :"+document.getElementsByTagName("description").item(i).getFirstChild().getNodeValue());
System.out.println("电影演员 :"+document.getElementsByTagName("actors").item(i).getFirstChild().getNodeValue());
System.out.println("语种 :"+document.getElementsByTagName("audiolanguage").item(i).getFirstChild().getNodeValue());
Node pictureNode = nodelist.item(i);
NodeList pictureNodeList = XPathAPI.selectNodeList(pictureNode,"PROGFILE/FILE");
System.out.println(pictureNodeList.getLength());
for(int j=0;j<pictureNodeList.getLength();j++)
{
System.out.println("图片 :"+pictureNodeList.item(j).getAttributes().getNamedItem("FILENAME"));
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
是想这样不
+ document.getElementsByTagName("FILE").item(1 + i * 4)
.getAttributes().item(1).getFirstChild()
.getNodeValue() + "'";
if (imagefile1 != null) {
imagelist.add(imagefile1); }
// 获得电影图片2
String imagefile2 = "'"
+ document.getElementsByTagName("FILE").item(2 + i * 4)
.getAttributes().item(1).getFirstChild()
.getNodeValue() + "'";
if (imagefile2 != null) {
imagelist.add(imagefile2); }
// 获得电影图片3
String imagefile3 = "'"
+ document.getElementsByTagName("FILE").item(3 + i * 4)
.getAttributes().item(1).getFirstChild()
.getNodeValue() + "'"; if (imagefile3 != null) {
imagelist.add(imagefile3); }