Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 解析网页中的XML_Java_Xml_Parsing - Fatal编程技术网

Java 解析网页中的XML

Java 解析网页中的XML,java,xml,parsing,Java,Xml,Parsing,如果我将这个站点的xml复制并粘贴到一个xml文件中,我就可以用java解析它 但是,如果可能的话,我想直接从网页上解析它 以下是我当前的代码: import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document;

如果我将这个站点的xml复制并粘贴到一个xml文件中,我就可以用java解析它

但是,如果可能的话,我想直接从网页上解析它

以下是我当前的代码:

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;

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

  public class XMLParser {

public void readXML(String parse) {
    File xml = new File(parse);
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder;
    try {
        dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(xml);
 //         System.out.println("Root element :"
 //                 + doc.getDocumentElement().getNodeName());

        NodeList nList = doc.getElementsByTagName("result");

        System.out.println("----------------------------");

        for (int temp = 0; temp < nList.getLength(); temp++) {

            Node nNode = nList.item(temp);

 //             System.out.println("\nCurrent Element :" + 
     nNode.getNodeName());

            if (nNode.getNodeType() == Node.ELEMENT_NODE) {

                Element eElement = (Element) nNode;

                System.out.println("job title : "
                        + 
 eElement.getElementsByTagName("jobtitle").item(0)
                        .getTextContent());;
                System.out.println("Company: "
                        + 
  eElement.getElementsByTagName("company")

 .item(0).getTextContent());
                System.out.println("City : "
                        + 
  eElement.getElementsByTagName("city").item(0)
                                .getTextContent());
                System.out.println("State : "
                        + 
eElement.getElementsByTagName("state").item(0)
                                .getTextContent());
                System.out.println("Country : "
                        + 
eElement.getElementsByTagName("country").item(0)
                                .getTextContent());
                System.out.println("Date posted : "
                        + 
     eElement.getElementsByTagName("date").item(0)
                                .getTextContent());
                System.out.println("Job summary : "
                        + 
    eElement.getElementsByTagName("snippet").item(0)
                                .getTextContent());
                System.out.println("Latitude : "
                        +      
 eElement.getElementsByTagName("latitude").item(0).getTextContent());
                System.out.println("longitude : "
                        +     
eElement.getElementsByTagName("longitude").item(0).getTextContent());

            }
        }

    } catch (ParserConfigurationException | SAXException | IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

public static void main(String[] args) {
    new XMLParser().readXML("test.xml");
}
 }
import javax.xml.parsers.DocumentBuilderFactory;
导入javax.xml.parsers.DocumentBuilder;
导入javax.xml.parsers.parserConfiguration异常;
导入org.w3c.dom.Document;
导入org.w3c.dom.NodeList;
导入org.w3c.dom.Node;
导入org.w3c.dom.Element;
导入org.xml.sax.SAXException;
导入java.io.File;
导入java.io.IOException;
公共类XMLParser{
公共void readXML(字符串解析){
文件xml=新文件(解析);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
文档生成器dBuilder;
试一试{
dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(xml);
//System.out.println(“根元素:”
//+doc.getDocumentElement().getNodeName());
NodeList nList=doc.getElementsByTagName(“结果”);
System.out.println(“-------------------------------”;
对于(int-temp=0;temp

任何帮助都将不胜感激。

给它URI而不是XML。它会帮你下载的


Document doc=dBuilder.parse(uriString)

这就是我直接从url解析数据的方式

静态类Kurs{
公共浮动库斯苏·斯普泽达齐;
库斯库普纳公众游船;
}
私有静态文档生成器dBuilder;
私有静态Kurs getData(字符串文件名、字符串货币)引发异常{
Document doc=dBuilder.parse(“http://www.nbp.pl/kursy/xml/“+filename+”.xml”);
doc.getDocumentElement().normalize();
NodeList nList=doc.getElementsByTagName(“pozycja”);
对于(int i=0;i
请找到如下代码片段

String url = "http://api.indeed.com/ads/apisearch?publisher=8397709210207872&q=java&l=austin%2C+tx&sort&radius&st&jt&start&limit&fromage&filter&latlong=1&chnl&userip=1.2.3.4&v=2";

try
{
  DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
  DocumentBuilder b = f.newDocumentBuilder();
  Document doc = b.parse(url);
}

您需要在for循环中包含所需的元素/节点。因此,它可以扫描xml文件,并找到您要搜索的正确节点

reads the xml file as a string, and creates a xml structure

        builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = builder.parse(connection.getInputStream());
        NodeList nodes = doc.getElementsByTagName("mode");

        for (int i = 0; i < nodes.getLength(); i++)

        Element element = (Element) nodes.item(i);

            //Gets tag from XML and it´s content
            NodeList nodeMode = element.getElementsByTagName("mode");
            Element elemMode = (Element) nodeMode.item(0);
reads the xml file as a string, and creates a xml structure

        builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = builder.parse(connection.getInputStream());
        NodeList nodes = doc.getElementsByTagName("mode");

        for (int i = 0; i < nodes.getLength(); i++)

        Element element = (Element) nodes.item(i);

            //Gets tag from XML and it´s content
            NodeList nodeMode = element.getElementsByTagName("mode");
            Element elemMode = (Element) nodeMode.item(0);
int currentMode = Integer.parseInt(elemMode.getFirstChild().getTextContent());