2017-09-02 4 views
0

Mon code est comme:Vous avez une liste de taille zéro lorsque vous utilisez XPath pour analyser xml

import java.io.File; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.List; 
import javax.servlet; 
import org.dom4j; 
import org.jaxen.JaxenException; 

/** 
* Servlet implementation class Search 
*/ 
//@WebServlet("/Search") 
public class Search extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    private static String xmlName = "rows.xml"; 
    private static Document document; 
    /** 
    * @throws DocumentException 
    * @see HttpServlet#HttpServlet() 
    */ 
    public Search() throws DocumentException { 
     super(); 
     XmlReader xmlReader = new XmlReader(); 
     document = xmlReader.readXml(); 
     searcher(); 
    } 

Le code qui a eu lieu la sortie inattendue:

public void searcher() 
    { 
     List nodelist = document.selectNodes("rows"); 
     System.out.println(nodelist.size()); 
    } 
} 

Mon lecteur XML:

package web.app; 
import org.xml.sax.helpers.DefaultHandler; 
import org.dom4j; 

public class XmlReader extends DefaultHandler{ 
    public static String filename = 
    "D:\\JavaWorkplace\\DataCuration\\WebContent\\rows.xml"; 
public Document readXml() throws DocumentException { 
    SAXReader saxReader = new SAXReader(); 
    Document document = saxReader.read(filename); 
    System.out.println(document.content()); 
    return document; 
} 

}

Le fichier XML: https://data.oregon.gov/api/views/j8eb-8um2/rows.xml?accessType=DOWNLOAD Cependant, la sortie est:

[[email protected] [Element: <response attributes: []/>]] 
0 

Alors, quel est le problème?

+0

Quel framework XML utilisez-vous? Est-ce dom4j? Veuillez clarifier et fournir suffisamment de contexte pour que quelqu'un d'autre puisse tester votre code. C'est à dire. poster un [mcve] –

+0

Oui, j'utilise dom4j. – Chen

+0

Sans un [mcve] qui produit l'erreur, il sera difficile pour quiconque de vous aider. En fait, il y a de fortes chances pour que vous prépariez le MCVE vous-même. –

Répondre

0

Très bien, j'ai la bonne raison. J'ai confondu l'élément racine dans le fichier XML. C'est "réponse", pas "lignes". Merci quand même :)