Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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 如何在Android应用程序中解析在线xml文件中的长字符串?_Java_Android_Parsing - Fatal编程技术网

Java 如何在Android应用程序中解析在线xml文件中的长字符串?

Java 如何在Android应用程序中解析在线xml文件中的长字符串?,java,android,parsing,Java,Android,Parsing,我想从xml文件中解析一个很长的字符串。您可以看到xml文件。 如果您访问上述文件,则有一个“description”标记,我想从中解析字符串。当有一个短字符串时,比如说“description”标记中的3行或4行字符串,我的解析器(Java SAX解析器)可以轻松解析该字符串,但当该字符串有数百行时,我的解析器无法解析该字符串。你可以检查我的代码,我正在使用的解析,请让我知道我在这方面的错误。请在这方面帮助我,我将非常感谢你的善举 下面是解析器GetterSetter类 public clas

我想从xml文件中解析一个很长的字符串。您可以看到xml文件。 如果您访问上述文件,则有一个
“description”标记
,我想从中解析字符串。当有一个短字符串时,比如说
“description”标记中的3行或4行字符串
,我的解析器(Java SAX解析器)可以轻松解析该字符串,但当该字符串有数百行时,我的解析器无法解析该字符串。你可以检查我的代码,我正在使用的解析,请让我知道我在这方面的错误。请在这方面帮助我,我将非常感谢你的善举

下面是解析器GetterSetter类

public class MyGetterSetter 
{
    private ArrayList<String> description = new ArrayList<String>();


        public ArrayList<String> getDescription()
        { 
            return description;
        }

        public void setDescription(String description) 
        { 


            this.description.add(description);
        }
} 

使用org.w3c.dom包

public static void main(String[] args) {
    try {
        URL url = new URL("http://www.aboutsports.co.uk/fixtures/");

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(url.openStream());

        NodeList list = doc.getElementsByTagName("item"); // get <item> nodes

        for (int i = 0; i < list.getLength(); i++) {
            Node item = list.item(i);
            NodeList descriptions = ((Element)item).getElementsByTagName("description"); // get <description> nodes within an <item>
            for (int j = 0; j < descriptions.getLength(); j++) {
                Node description = descriptions.item(0);

                System.out.println(description.getTextContent()); // print the text content
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}
publicstaticvoidmain(字符串[]args){
试一试{
URL=新URL(“http://www.aboutsports.co.uk/fixtures/");
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
documentdoc=dBuilder.parse(url.openStream());
NodeList list=doc.getElementsByTagName(“项”);//获取节点
对于(int i=0;i
在java中,从XML文档中提取位也非常有用。举个例子

您可以使用类似于
/item/description
xpath表达式。当您在XML
InputStream
上对其求值时,它将返回一个如上所述的
NodeList
,其中包含
元素中的所有
元素


如果您想按自己的方式执行,那么使用
DefaultHandler
,您需要设置和取消设置标志,以便检查您是否在
元素的主体中。上面的代码可能在内部执行类似的操作,对您隐藏它。代码在java中可用,为什么不使用它?

您想要每个
描述
标记的内容吗?是的,亲爱的,我想要每个描述标记的内容。“…无法解析字符串…”这是什么意思?你有例外吗?空字符串?空字符串?我收到一个空字符串。我建议看一下。这样做会容易得多。
public static void main(String[] args) {
    try {
        URL url = new URL("http://www.aboutsports.co.uk/fixtures/");

        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(url.openStream());

        NodeList list = doc.getElementsByTagName("item"); // get <item> nodes

        for (int i = 0; i < list.getLength(); i++) {
            Node item = list.item(i);
            NodeList descriptions = ((Element)item).getElementsByTagName("description"); // get <description> nodes within an <item>
            for (int j = 0; j < descriptions.getLength(); j++) {
                Node description = descriptions.item(0);

                System.out.println(description.getTextContent()); // print the text content
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}