Member 13753823 Ответов: 0

Как разобрать уже созданный url-адрес в java


Я уже несколько дней ищу простое решение для анализа xml из интернета с помощью String. Большинство примеров здесь посвящено тому, как создать url-адрес. Я хочу разобрать этот url - адрес, а также получить доступ к странице и восстановить этот файл. Я действительно читал javadoc, он также описывает прямо противоположный пример.

Что я уже пробовал:

Это мой код до сих пор:
import java.io.Serializable;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

public class ChannelParser extends Object implements Serializable {

    private static Document loadTestDocument(String url) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);
        return factory.newDocumentBuilder().parse(new URL(url).openStream());
    }

    public void processNode(Node currentNode) throws XPathExpressionException {

        switch (currentNode.getNodeType()) {

            case Node.ELEMENT_NODE:
                Document doc = (Document) currentNode;

                // normalize text representation of text
                doc.getDocumentElement().normalize();
                XPathFactory factory = XPathFactory.newInstance();
                XPath xpath = factory.newXPath();
                javax.xml.xpath.XPathExpression expr
                        = xpath.compile("example path");
                Object result = expr.evaluate(doc, XPathConstants.NODESET);
                 System.out.println(nodes.item(i).getNodeValue());
                Integer s = 1;
                List<String> list = new ArrayList<>();
                NodeList nodes = (NodeList) result;
                //Update/renew the headline
                for (int i = 0; i < list.getLength(); i++) {
                    Node n = List.getRootElement(i);
                   System.out.println(n.getElementsByTagName("title").item(0).getTextContent());
                    list.add(n.getNodeName());
                    s++;
                }
                    break;
                }
        }

    public static void main(String[] args) throws Exception {
        Document doc = loadTestDocument("example url");
        System.out.println(doc);
    }

    private void processChildNodes(NodeList childNodes) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    public class myErrorHandler implements ErrorHandler {
        @Override
        public void fatalError(SAXParseException exception) throws SAXException {
            throw exception;
        }

        @Override
        public void error(SAXParseException e) throws SAXParseException {
            throw e;
        }
        @Override
        public void warning(SAXParseException err) throws SAXParseException {
            System.err.println("Warning: " + err.getMessage());
        }

    }
}

0 Ответов