Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过xpath使用SAX进行XML解析_Java_Xml_Xml Parsing_Sax_Saxparser - Fatal编程技术网

Java 通过xpath使用SAX进行XML解析

Java 通过xpath使用SAX进行XML解析,java,xml,xml-parsing,sax,saxparser,Java,Xml,Xml Parsing,Sax,Saxparser,我试图通过使用xpath使用SAX进行XML解析。但当我尝试获取多节点集的数据时,它并没有给出这样的结果 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpres

我试图通过使用xpath使用SAX进行XML解析。但当我尝试获取多节点集的数据时,它并没有给出这样的结果

  import java.io.File;
  import java.io.FileInputStream;
  import java.io.IOException;

  import javax.xml.xpath.XPath;
  import javax.xml.xpath.XPathConstants;
  import javax.xml.xpath.XPathExpression;
  import javax.xml.xpath.XPathExpressionException;
  import javax.xml.xpath.XPathFactory;

  import org.apache.xpath.NodeSet;
  import org.w3c.dom.NodeList;
  import org.xml.sax.InputSource;


  public class XPathEvaluator{


   public void evaluateDocument(File xmlDocument){

    try{
 XPathFactory factory=XPathFactory.newInstance();
 XPath xPath=factory.newXPath();
 InputSource inputSource=new InputSource(new FileInputStream(xmlDocument));
 XPathExpression         

  xPathExpression=xPath.compile("/catalog/journal/article[@date='January-2004']/title");
String title=xPathExpression.evaluate(inputSource);
System.out.println("Title: "+ title);

 inputSource=new InputSource(new FileInputStream(xmlDocument));
String publisher=xPath.evaluate("/catalog/journal/@publisher", inputSource);
System.out.println("Publisher:"+ publisher);    

String expression="/catalog/journal[@title='Java Technology']/article";
NodeSet nodes = (NodeSet) xPath.evaluate(expression, inputSource,XPathConstants.NODESET);    
NodeList nodeList=(NodeList)nodes;   
System.out.println("node List"+nodeList);
  }
  catch(IOException  e){}
 catch(XPathExpressionException e){}

 }


 public static void main(String[] argv){


 XPathEvaluator evaluator=new XPathEvaluator();

 File xmlDocument=new File("e://catalog-modified.xml");
 evaluator.evaluateDocument(xmlDocument);

 }

  }
我的catalog-modified.xml如下

       <?xml version="1.0" encoding="UTF-8"?>
    <catalog xmlns:journal="http://www.w3.org/2001/XMLSchema-Instance"> 
        <journal:journal title="XML" publisher="IBM  developerWorks">       
    <article journal:level="Advanced"   date="February-2003">   
              <title>Design XML Schemas Using UML</title>          
              <author>Ayesha Malik</author>   
    </article>     
</journal:journal> 
 <journal title="Java Technology" publisher="IBM     
      developerWorks">             
 <article level="Intermediate"  date="January-2004" 
      section="Java Technology">                      
   <title>Service Oriented Architecture Frameworks
       </title>                  
       <author>Naveen Balani       
       </author>               
    </article>  
    <article level="Advanced" date="October-2003"  section="Java Technology">                 
       <title>Advance DAO Programming</title>                   
      <author>Sean Sullivan</author>               
   </article>    
    <article level="Advanced" date="May-2002"  section="Java Technology">     
       <title>Best Practices in EJB Exception Handling   </title>          
       <author>Srikanth Shenoy      
       </author>      
     </article> 
</journal> 

使用UML设计XML模式
阿伊莎·马利克
面向服务的体系结构框架
纳文巴拉尼
高级DAO编程
肖恩·沙利文
EJB异常处理的最佳实践
斯里坎特·谢诺伊


如果我试图调用它,请不要为此显示任何节点集。

journal元素位于名称空间中。您不能忽略名称空间。请阅读有关XPath和名称空间的内容-本论坛中有数千篇关于该主题的帖子。

journal元素位于名称空间中。您不能忽略名称空间。请阅读关于XPath和名称空间的文章——在这个论坛上有数千篇关于这个主题的文章