Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.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
Android 从资产读取xml时出现SAX异常_Android_Xml_Xml Parsing_Sax_Bufferedreader - Fatal编程技术网

Android 从资产读取xml时出现SAX异常

Android 从资产读取xml时出现SAX异常,android,xml,xml-parsing,sax,bufferedreader,Android,Xml,Xml Parsing,Sax,Bufferedreader,您好,我正在尝试读取项目资产文件夹中的xml文件,但当它要通过缓冲区读取器读取时,它抛出了一个SAX异常,我到处搜索以解决此问题,但没有这样做,它读取了xml的某些部分,然后通过“文档结尾”读取异常请在这方面帮助我 下面是我的源代码: 主活动 public class MainActivity extends ListActivity { static final String KEY_TITLE = "d:Title"; // parent node static fina

您好,我正在尝试读取项目资产文件夹中的xml文件,但当它要通过缓冲区读取器读取时,它抛出了一个SAX异常,我到处搜索以解决此问题,但没有这样做,它读取了xml的某些部分,然后通过“文档结尾”读取异常请在这方面帮助我

下面是我的源代码:

主活动

public class MainActivity extends ListActivity {


    static final String KEY_TITLE = "d:Title"; // parent node
    static final String KEY_CREATIONDATE = "d:Created";
    static final String KEY_DESC = "d:Introduction";
    static final String KEY_CONTENT = "entry";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        InputStream in = null;

        AssetManager assetManager = this.getAssets();
        try {

            in = assetManager.open("XMLFile.xml");

        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }


        BufferedReader reader = new BufferedReader (new InputStreamReader(in),8);

        StringBuilder xml1 = new StringBuilder();
        String cursor;
        try {
            while ( (cursor = reader.readLine()) != null){
                xml1.append(cursor);
            }
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        String xml = xml1.toString();
        Log.d("XML", xml);

        ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

        XmlParser parser = new XmlParser();
        //String xml = parser.getXmlFromUrl(URL); // getting XML
        Document doc = parser.getDomElement(in); // getting DOM element

        Log.d("seen1","seen1");
        NodeList nl = doc.getElementsByTagName(KEY_CONTENT);
        Log.d("seen1","seen2");
        // looping through all item nodes <content>
        for (int i = 0; i < nl.getLength(); i++) {
            // creating new HashMap
            HashMap<String, String> map = new HashMap<String, String>();
            Element e = (Element) nl.item(i);
            // adding each child node to HashMap key => value
            map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
            map.put(KEY_CREATIONDATE, parser.getValue(e, KEY_CREATIONDATE));
            map.put(KEY_DESC, parser.getValue(e, KEY_DESC));

            // adding HashList to ArrayList
            menuItems.add(map);
        }

        // Adding menuItems to ListView
        ListAdapter adapter = new SimpleAdapter(this, menuItems,
                R.layout.list_feed,
                new String[] { KEY_TITLE, KEY_CREATIONDATE, KEY_DESC }, new int[] {
                        R.id.Title, R.id.creationDate , R.id.desciption });

        setListAdapter(adapter);

    }
}
日志类别:

03-21 14:17:59.375: E/Error2:(27301): Unexpected end of document
03-21 14:17:59.375: D/seen1(27301): seen1
03-21 14:17:59.375: D/AndroidRuntime(27301): Shutting down VM
03-21 14:17:59.375: W/dalvikvm(27301): threadid=1: thread exiting with uncaught exception (group=0x4001d578)
03-21 14:17:59.445: E/AndroidRuntime(27301): FATAL EXCEPTION: main
03-21 14:17:59.445: E/AndroidRuntime(27301): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.webpreneur/com.example.webpreneur.MainActivity}: java.lang.NullPointerException
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.access$1500(ActivityThread.java:121)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.os.Looper.loop(Looper.java:138)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.main(ActivityThread.java:3701)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at java.lang.reflect.Method.invokeNative(Native Method)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at java.lang.reflect.Method.invoke(Method.java:507)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at dalvik.system.NativeStart.main(Native Method)
03-21 14:17:59.445: E/AndroidRuntime(27301): Caused by: java.lang.NullPointerException
03-21 14:17:59.445: E/AndroidRuntime(27301):    at com.example.webpreneur.MainActivity.onCreate(MainActivity.java:74)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
03-21 14:17:59.445: E/AndroidRuntime(27301):    ... 11 more
在logcat中显示的XML文件,未完成,在此之后通过SAX异常“结束doucment”

03-2114:17:59.295:D/XML(27301):032AC78-4645-416d-8f57-69f9de340d9e 2014-03-20T06:20:12Z bd4e2024-d7dd-4c09-bfdc-0364d88c9b35 2014-03-20T06:20:12Z 0 10x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B2447815D6888C526CD44D0C500C5D7502BB1BE4006888BDEE78E104B00A287E6D310B04CEF929EAFF95D33A560CB1EC286E8DFD469D11D11225435F896新闻中心67XPVZAHCTHM-7-1 67XPZAHCTHM-7-1https://portal.wow2.telenor.com/global/newscentre/_layouts/15/DocId
03-21 14:17:59.345:D/dalvikvm(27301):GC_遵循以下步骤:

  • 从以下链接下载jar文件

  • 将jar文件粘贴到libs中

  • 添加以下演示代码:



  • 发布您的xml文件demo@Dhaval请参见编辑,我粘贴了他们读取的logcat xml文件,然后通过sax读取。例外,您知道json对象是的,但我猜它不适用于xml?我演示如何将xml转换为json显示我的答案您可以告诉我在哪里可以添加此代码,我需要从以前的代码中删除哪些内容,这将对我非常有帮助,提前谢谢这里我更新了答案最后你得到的xml数据被转换成jsonsorry@dhaval,你的意思是我只是删除了所有以前使用的代码和你给定的代码吗,?或者你想让我将你的代码添加到我的代码中,实际上这是我第一次参与此类项目,请帮助我,实际上我只想在我的列表视图中显示,我想要的是,在你从json obejct获取元素之后,你终于可以看到XML文件被转换为json对象
    03-21 14:17:59.375: E/Error2:(27301): Unexpected end of document
    03-21 14:17:59.375: D/seen1(27301): seen1
    03-21 14:17:59.375: D/AndroidRuntime(27301): Shutting down VM
    03-21 14:17:59.375: W/dalvikvm(27301): threadid=1: thread exiting with uncaught exception (group=0x4001d578)
    03-21 14:17:59.445: E/AndroidRuntime(27301): FATAL EXCEPTION: main
    03-21 14:17:59.445: E/AndroidRuntime(27301): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.webpreneur/com.example.webpreneur.MainActivity}: java.lang.NullPointerException
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.access$1500(ActivityThread.java:121)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.os.Handler.dispatchMessage(Handler.java:99)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.os.Looper.loop(Looper.java:138)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.main(ActivityThread.java:3701)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at java.lang.reflect.Method.invoke(Method.java:507)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at dalvik.system.NativeStart.main(Native Method)
    03-21 14:17:59.445: E/AndroidRuntime(27301): Caused by: java.lang.NullPointerException
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at com.example.webpreneur.MainActivity.onCreate(MainActivity.java:74)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
    03-21 14:17:59.445: E/AndroidRuntime(27301):    ... 11 more
    
     03-21 14:17:59.295: D/XML(27301): <?xml version="1.0" encoding="utf-8"?><feed xml:base="https://portal.wow2.telenor.com/global/newscentre/_api/" xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">  <id>032acc78-4645-416d-8f57-69f9de340d9e</id>  <title />  <updated>2014-03-20T06:20:12Z</updated>  <entry m:etag="&quot;97&quot;">    <id>bd4e2024-d7dd-4c09-bfdc-0364d88c9b35</id>    <category term="SP.Data.PagesItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />    <link rel="edit" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FirstUniqueAncestorSecurableObject" type="application/atom+xml;type=entry" title="FirstUniqueAncestorSecurableObject" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/FirstUniqueAncestorSecurableObject" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/RoleAssignments" type="application/atom+xml;type=feed" title="RoleAssignments" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/RoleAssignments" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/AttachmentFiles" type="application/atom+xml;type=feed" title="AttachmentFiles" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/AttachmentFiles" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ContentType" type="application/atom+xml;type=entry" title="ContentType" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/ContentType" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesAsHtml" type="application/atom+xml;type=entry" title="FieldValuesAsHtml" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/FieldValuesAsHtml" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesAsText" type="application/atom+xml;type=entry" title="FieldValuesAsText" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/FieldValuesAsText" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/FieldValuesForEdit" type="application/atom+xml;type=entry" title="FieldValuesForEdit" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/FieldValuesForEdit" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/File" type="application/atom+xml;type=entry" title="File" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/File" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Folder" type="application/atom+xml;type=entry" title="Folder" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/Folder" />    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ParentList" type="application/atom+xml;type=entry" title="ParentList" href="Web/Lists(guid'b1b97552-232e-46e3-b9ec-f864a85f7177')/Items(1)/ParentList" />    <title />    <updated>2014-03-20T06:20:12Z</updated>    <author>      <name />    </author>    <content type="application/xml">      <m:properties>        <d:FileSystemObjectType m:type="Edm.Int32">0</d:FileSystemObjectType>        <d:Id m:type="Edm.Int32">1</d:Id>        <d:ContentTypeId>0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D00C5D7502BB1BE4006888BDEE5E78E104B00A287E6D310B04CEF9229EAFF95D33A5600CBA1EC286E8DFD469D11D1225435F896</d:ContentTypeId>        <d:OData__ModerationComments m:null="true" />        <d:Title>News Center</d:Title>        <d:OData__dlc_DocId>67XPVZAHCTHM-7-1</d:OData__dlc_DocId>        <d:OData__dlc_DocIdUrl m:type="SP.FieldUrlValue">          <d:Description>67XPVZAHCTHM-7-1</d:Description>          <d:Url>https://portal.wow2.telenor.com/global/newscentre/_layouts/15/DocId
            03-21 14:17:59.345: D/dalvikvm(27301): GC_CONCURRENT freed <1K, 44% free 8831K/15559K, external 2058K/2129K, paused 2ms+2ms
            03-21 14:17:59.375: E/Error2:(27301): Unexpected end of document
            03-21 14:17:59.375: D/seen1(27301): seen1
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        String xmldata = null;
        try {
            xmldata = convertStreamToString(getAssets().open("XMLFILENAME"));
        } catch (IOException e1) {
            e1.printStackTrace();
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        JSONObject jsonObj = null;
        try {
            jsonObj = XML.toJSONObject(xmldata);
        } catch (JSONException e) {
            Log.e("JSON exception", e.getMessage());
            e.printStackTrace();
        }
    
        Log.d("XML", xmldata);
        Log.d("JSON", jsonObj.toString());
    }
    
    public static String convertStreamToString(InputStream is) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
          sb.append(line).append("\n");
        }
        reader.close();
        return sb.toString();
    }