Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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注释_Android_Xml Parsing_Saxparser - Fatal编程技术网

在Android中解析XML注释

在Android中解析XML注释,android,xml-parsing,saxparser,Android,Xml Parsing,Saxparser,出于个人目的,我想解析Android清单文件中的注释。在这些注释中,可以有我想要提取的带有属性和值的标记。它类似于html文件中通常被注释的标记,因为某些浏览器不支持此标记。所以我想在android清单中实现类似的东西 我知道在Android中,清单文件是使用SAXParser解析的。此外,我认为我应该为此使用LexicalHandler,但我以前从未遇到过这种功能,我想知道如何做到这一点。非常感谢您的代码片段和任何帮助 我认为这是不可能的,因为AndroidManifest不能作为类路径资源使

出于个人目的,我想解析Android清单文件中的注释。在这些注释中,可以有我想要提取的带有属性和值的标记。它类似于html文件中通常被注释的标记,因为某些浏览器不支持此标记。所以我想在android清单中实现类似的东西


我知道在Android中,清单文件是使用SAXParser解析的。此外,我认为我应该为此使用LexicalHandler,但我以前从未遇到过这种功能,我想知道如何做到这一点。非常感谢您的代码片段和任何帮助

我认为这是不可能的,因为AndroidManifest不能作为类路径资源使用。我能想到的唯一方法是将AndroidManifest.xml复制到源文件中,并使用ant目标将其构建为编译对象


然后使用XML API像访问普通XML文件一样访问它。

我不想成为那个家伙,但您可能应该在/assets/中维护您的自定义XML,而不是重载manifest.XML文件。

我完全确定您无法解析原始XML清单,因为与
res
文件夹中的所有内容一样(除了
res/raw
),清单以二进制格式编译和存储,因此注释被删除

也许您可以使用xmlns并捕获清单解析……但我对此表示怀疑,清单是由包管理器解释的,我认为您无法访问它

解决方案(来自您的反馈):
请求的功能是不可能的,因为在编译过程中,来自AndroidManifest文件的所有注释都将被删除

您可以通过以下方式进行检查:

  • 创建一个简单的应用程序项目(Hello World)并在AndroidManifest文件中添加注释
  • 编译项目并导出.apk文件(已签名或未签名)
  • 使用apktool或类似工具提取apk文件
  • 检查AndroidManifest.xml中的结果-没有注释

  • 你应该试着找到其他方法。

    我正在处理框架层,以便能够解析AndroidManifest。唯一的问题是我不知道如何做到这一点。我认为它可以被视为一个简单的xml文件,但我需要知道如何从注释中提取标记及其属性。此外,在Manifest文件中可能有多个注释,例如这就是我需要tags.Understand的原因,但运行时类路径中不存在XML文件(除非通过复制使其存在)你是什么意思?假设你有一个软件包安装程序。它解析AndroidManifest文件并向用户表示信息。所以在这个级别上,我想我可以解析这个xml文件。或者我不理解一些东西,因为实际上我从来没有认真面对过xml解析。如果你想在运行时读取文件,你有几个选择:你知道实际文件在文件系统中的位置,例如新文件(“/etc/passwd”),或者从类路径线程.getContextClassLoader().getResource(“/META-INF/MANIFEST.MF”)获取。这是我担心的。我正在考虑这个问题,但我不确定。非常感谢!