title: XPath error-->[Fatal Error] :1:1: Content is not allowed in prolog
body: <p>i wrote the below program, but when it goes ot the XPath classes it gives <strong>[Fatal Error] :1:1: Content is not allowed in prolog.</strong> i tried to figure it out but couldnt make it.is there any clue to fix this problem?</p>
  
  <pre><code>package xpath;
  
  import com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.io.StringReader;
  import java.net.MalformedURLException;
  import java.net.URL;
  import javax.xml.namespace.QName;
  import javax.xml.parsers.ParserConfigurationException;
  import javax.xml.xpath.XPathConstants;
  import javax.xml.xpath.XPathExpressionException;
  import javax.xml.xpath.XPathFactory;
  import javax.xml.xpath.XPathVariableResolver;
  import org.ccil.cowan.tagsoup.Parser;
  import org.w3c.dom.Node;
  import org.xml.sax.InputSource;
  import org.xml.sax.SAXException;
  import org.xml.sax.SAXNotRecognizedException;
  import org.xml.sax.SAXNotSupportedException;
  
  public class XPath {
      private static int seg;
  
           private static void check(Node node) throws XPathExpressionException {
            if (node == null || node.getNodeName() == null)
      return;
  
  
    TFIDF( node.getNodeValue(),"java");
    check(node.getFirstChild());
  if(node.getFirstChild()==null &amp;&amp;node.getNextSibling()==null)
       seg++;
  System.out.println(node.getNodeValue() != null &amp;&amp; node.getNodeValue().trim().length() == 0 ? "" : node);
      check(node.getNextSibling());
      }
  
  
  
  
  
      public static void main(String[] args) throws MalformedURLException, SAXNotRecognizedException, SAXNotSupportedException, ParserConfigurationException, IOException, SAXException, XPathExpressionException {
  
  
               Parser p = new Parser();
          SAX2DOM sax2dom = null;
     org.w3c.dom.Node doc  = null;
  
         URL url = new URL("http://stackoverflow.com/questions");
  
     p.setFeature(Parser.namespacesFeature, false);
     p.setFeature(Parser.namespacePrefixesFeature, false);
     sax2dom = new SAX2DOM();
     p.setContentHandler(sax2dom);
     p.parse(new InputSource(new InputStreamReader(url.openStream())));
     doc = sax2dom.getDOM();
  
      Node html=doc.getFirstChild();
      check(html);
  
      }
  
      private static void TFIDF(String segment,  String keyword) throws XPathExpressionException {
    if (segment!=null)
    {
  InputSource src = new InputSource(new StringReader(segment));
  
      final String term = keyword;
  String expression = "//*[contains(text(),$term)]";
  final QName termVariableName = new QName("term");
  class TermResolver implements XPathVariableResolver {
    @Override
    public Object resolveVariable(QName variableName) {
      return termVariableName.equals(variableName) ? term : null;
    }
  }
          javax.xml.xpath.XPath xpath = XPathFactory.newInstance().newXPath();
  xpath.setXPathVariableResolver(new TermResolver());
  Node node = (Node) xpath.evaluate(expression, src, XPathConstants.NODE);
  
    }
  
      }
  }
  </code></pre>