无法使用xPath从xml元素检索值

时间:2018-04-21 08:44:03

标签: java xml xpath

大家好,我试图使用xPath来检索某些xml元素的值,但所有NodeList都不包含节点'值。有谁可以帮助我?

这是我要检索的xml:

public interface SampleInterface {
@POST("add_endpoint")
Call<JsonObject> getAllComplaints(@Body JsonObject jsonObject);
}

这是代码:

<?xml version="1.0" ?>
<Documenti UID="69431" UTC="20-04-2018 13:35:21 UTC(+0000)" 
NomeDA="Documento-Amministrativo-Informatico-PA" 
HASH_PDV="F65ECB12CD2A0344BEAAB7250B4C228490C3DCF0FD845775B3FFF7055D780BE6" 
HASH_PDV_TYPE="SHA-256" schemaVersion="3.0">
 <errori>
    <errore>
      Riga 1: METADATI_DUPLICATI: I Metadati "UID_Documento" sono 
      definiti come univoci, ma i seguenti valori dichiarati sul file di bb 
      indice sono gia' presenti a sistema: [UID_Documento=335]
    </errore>
    <errore>
       Riga 2: METADATI_DUPLICATI: I Metadati "UID_Documento" sono 
       definiti come univoci, ma i seguenti valori dichiarati sul 
       file di indice sono gia' presenti a sistema: 
      [UID_Documento=334]
    </errore>
    <errore>
       Errore durante la validazione documenti per il processo con id 69431 
       Dati non validati: Riga 1: METADATI_DUPLICATI: I Metadati 
       "UID_Documento" sono definiti come univoci, ma i seguenti valori 
       dichiarati sul file di indice sono gia' presenti a sistema: 
       [UID_Documento=335]
    </errore>
    <errore>
           Riga 2: METADATI_DUPLICATI: I Metadati "UID_Documento" sono 
           definiti come univoci, ma i seguenti valori dichiarati sul file 
           di indice sono gia' presenti a sistema: [UID_Documento=334] 
   </errore>

1 个答案:

答案 0 :(得分:0)

以这种方式解决,无论如何谢谢:

            File tmpf=new File(Folium.getProperty(session, Folium.GLOBAL_LOCAL_PATH)+File.separator+"error"+File.separator+"error.xml");
        FileUtils.writeByteArrayToFile(tmpf, bytesP7m);
        //BufferedReader br=new BufferedReader(new FileReader(tmpf.getName()));
        FileInputStream fileIS = new FileInputStream(tmpf);
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        Document xmlDocument = builder.parse(fileIS);
        NodeList nodeList = xmlDocument.getElementsByTagName("errore");
        for (int i=0; i<nodeList.getLength(); i++) {
            String node=nodeList.item(i).getFirstChild().getNodeValue();
            returnError=returnError+"\r\n"+nodeList.item(i).getFirstChild().getNodeValue();
        }