我想讀取使用Java程序的XML文件數據。但是o/p只顯示null。閱讀java中的XML數據
想法是從下面的xml文件1.e中讀取例如內容名稱的值。 Content Value =「AssetFlow_Trial_07.mpg」來自下面的xml文件。但我得到的只是空白輸出。
下面是我的XML文件,
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<ADI>
<Metadata>
<AMS Asset_Name="mntario8616_8889pk_026" Provider="Rogers" Product="DRAOD" Version_Major="4" Version_Minor="12" Description="Kids_in_Hall_Ep__1Package_Asset" Creation_Date="2010-06-11" Provider_ID="HBOworld" Asset_ID="TJPK0000000000000026" Asset_Class="package"/>
<App_Data App="MOD" Name="Provider_Content_Tier" Value="IFCC_FREE_10"/>
<App_Data App="MOD" Name="Metadata_Spec_Version" Value="CableLabsVOD1.1"/>
</Metadata>
<Asset>
<Metadata>
<AMS Asset_Name="mntario8616_8889m_024" Provider="Rogers" Product="DRAOD" Version_Major="1" Version_Minor="0" Description="Kids_in_Hall_Ep__1Title_Movie" Creation_Date="2010-06-11" Provider_ID="HBOworld" Asset_ID="TJMV0000000000000024" Asset_Class="movie"/>
<App_Data App="MOD" Name="Type" Value="movie"/>
<App_Data App="MOD" Name="Encryption" Value="N"/>
<App_Data App="MOD" Name="Audio_Type" Value="Stereo"/>
<App_Data App="MOD" Name="Languages" Value="en"/>
<App_Data App="MOD" Name="Viewing_Can_Be_Resumed" Value="Y"/>
<App_Data App="MOD" Name="HDContent" Value="Y"/>
</Metadata>
<Content Value="AssetFlow_Trial_07.mpg"/>
</Asset>
這是我的Java代碼,
Java代碼:
XMLInputFactory factory = null;
XMLStreamReader reader = null;
XMLInputFactory factory = null;
XMLStreamReader reader = null;
try {
factory = XMLInputFactory.newInstance();
factory.setProperty(XMLInputFactory.IS_COALESCING, true);
reader = factory.createXMLStreamReader(new FileInputStream(new File(
"D:\\seachange\\AssetFlow Test Files\\DR-Sun3.xml")));
boolean readCharacters = false;
while (reader.hasNext()) {
int event = reader.next();
switch (event) {
case (XMLStreamConstants.START_ELEMENT): {
if (reader.getLocalName().equals("Metadata")) {
readCharacters = true;
}
break;
}
case (XMLStreamConstants.CHARACTERS): {
if (readCharacters) {
System.out.println(reader.getText());
readCharacters = false;
}
break;
}
}
}
}
catch (Throwable t) {
t.printStackTrace();
}
finally {
try {
reader.close();
}
catch (Throwable t) {
t.printStackTrace();
}
}
任何幫助表示讚賞1!
時間來學習如何調試:) – m0skit0 2014-10-17 10:28:09