Android 我可以用SAX解析器解析二进制XML文件(以res/XML格式)吗

Android 我可以用SAX解析器解析二进制XML文件(以res/XML格式)吗,android,xml,performance,binary,sax,Android,Xml,Performance,Binary,Sax,澄清我的问题:-) 我想两全其美 拥有压缩xml的速度 文件 ( 通过一个XmlResourceParser 通常与二进制文件一起使用) 最重要的问题是:这能做到吗 我最接近的解决方案是 或打开原始资源(非二进制) 格式) 或使用XmlResourceParser解析二进制xml文件 我希望有人能帮助我在这种情况下走得更远 编辑:用于反映SAX解析器速度的链接SAX解析器在原始资源中的效率低于XmlResourceParser for XML。只需使用XmlResourceParser。SA

澄清我的问题:-)

我想两全其美

  • 拥有压缩xml的速度 文件
  • ( 通过一个XmlResourceParser 通常与二进制文件一起使用)
  • 最重要的问题是:这能做到吗

    我最接近的解决方案是

    • 打开原始资源(非二进制) 格式)
    • 使用XmlResourceParser解析二进制xml文件
    我希望有人能帮助我在这种情况下走得更远


    编辑:用于反映SAX解析器速度的链接

    SAX解析器在原始资源中的效率低于XmlResourceParser for XML。只需使用XmlResourceParser。

    SAX解析器在原始资源中的效率并不比XmlResourceParser for XML高。只需使用XmlResourceParser。

    您可以将您的xml文件资产文件夹放在其中,也可以使用Sax解析器

    InputStream xmlFileStram = getAssets().open(filePath); // this gives the file in your asset folder
    XmlHandler xmlHandler = new XmlHandler(activity);
    SAXParserFactory.newInstance().newSAXParser().parse(xmlFileStram, xmlHandler);
    

    您可以将xml文件资产放在文件夹中,并且可以使用Sax解析器

    InputStream xmlFileStram = getAssets().open(filePath); // this gives the file in your asset folder
    XmlHandler xmlHandler = new XmlHandler(activity);
    SAXParserFactory.newInstance().newSAXParser().parse(xmlFileStram, xmlHandler);
    

    你能给我一个支持你陈述的来源吗?ThanksXmlPullParser在源代码中,您没有在原始文件中找到预解析的XML;它从普通的inputstream中访问Xml。在这种情况下,SAX解析器可能会更快;但如果您可以选择将文件放在res/raw中,pull解析器将更快。上次我检查时,来自资源的XmlPullParser比任何其他解析器都快10-100倍。甚至没有必要去想它。aapt在构建时为您完成了大量解析工作;这与在设备上解析普通/真实的XML文档完全不同。@ProgrammerXR--BTW,如果您不知道hackbod是Android的关键开发人员之一,并且与您将获得的权威性差不多。感谢您的回复:-)您能给我一个支持您声明的来源吗?ThanksXmlPullParser在源代码中,您没有在原始文件中找到预解析的XML;它从普通的inputstream中访问Xml。在这种情况下,SAX解析器可能会更快;但如果您可以选择将文件放在res/raw中,pull解析器将更快。上次我检查时,来自资源的XmlPullParser比任何其他解析器都快10-100倍。甚至没有必要去想它。aapt在构建时为您完成了大量解析工作;这与在设备上解析普通/真实的XML文档完全不同。@ProgrammerXR--BTW,如果您不知道hackbod是Android的关键开发人员之一,并且与您将获得的权威性一样。感谢响应人员:-)这将比使用XML PullParser慢很多,您可以将文件放在res/XML中,所以不推荐。这比使用xml PullParser要慢很多,因为将文件放在res/xml中,所以不推荐。我已经开发了一个不依赖于AAPT的APK提取器。它包括可以解析任何Android二进制XML内容的解析器——我开发了一个不依赖于AAPT的APK提取器。它包括可以解析任何Android二进制XML内容的解析器-