【发布时间】:2017-04-17 14:43:00
【问题描述】:
我正在解析一个 xml 文件以获取一些值,当我显示从 xml 获取它们的值时,一切似乎都很好,它们是空白的
public static void main(String[] args) throws Throwable {
SpringApplication.run(SwiftApplication.class, args);
XMLInputFactory factory = XMLInputFactory.newInstance();
//On utilise notre fichier de test
File file = new File("/home/dhafer/Downloads/Connector's Files/file.xml");
//Nous allons stocker deux feuilles et arrêter la lecture
ArrayList<String> listFruit = new ArrayList<>();
try {
//Obtention de notre reader
XMLStreamReader reader = factory.createXMLStreamReader(new FileReader(file));
while (reader.hasNext()) {
// Récupération de l'événement
int type = reader.next();
switch (type) {
case XMLStreamReader.START_ELEMENT:
System.out.println("Nous sommes sur un élement " + reader.getLocalName());
// Si c'est un début de balise, on vérifie qu'il s'agit d'une balise feuille
if(reader.getLocalName().equals("OptnTp")){
//On récupère l'évenement suivant, qui sera le contenu de la balise
//et on stocke dans la collection
reader.next();
listFruit.add( reader.getCharacterEncodingScheme());
System.out.println("\t -> Fruit récupérée ! ");
}
break;
}
//Si nous avons deux feuilles, on stop la lecture
if(listFruit.size() > 2){
System.out.println("\t --> Nombre de fruit > 1 => fin de boucle !");
break;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
System.out.println(listFruit.get(0));
}
}
这是我正在使用的 xml 文件。
<CorpActnOptnDtls>
<OptnNb>004</OptnNb>
<OptnTp>
<Cd>NOAC</Cd>
</OptnTp>
<FrctnDspstn>
<Cd>DIST</Cd>
</FrctnDspstn>
<CcyOptn>EUR</CcyOptn>
<DfltPrcgOrStgInstr>
<DfltOptnInd>true</DfltOptnInd>
</DfltPrcgOrStgInstr>
</CorpActnOptnDtls>
我错过了什么? 有任何想法吗? 谢谢
【问题讨论】:
-
请在您的问题中添加一个示例 xml 文件
-
有什么想法吗?我得到这个输出:[[C@7852e922,[C@7852e922,[C@7852e922,[C@7852e922]