如何在文件系统的另一个位置包含来自另一个 xml 的其他字符串?
例如:
<xi:include href="assets/app.xml" parse="xml" />
但是上面的例子不起作用,正确的语法是什么?无法通过谷歌在其上找到任何内容。
也许你想知道为什么?好吧,说来话长,但想要自动化一些项目并在 Assets 文件夹中生成内容(并重用)。这就是它位于另一个位置的原因。我唯一需要做的就是在 ADT 中运行打印机。
是否可以包含来自其他位置的一些其他字符串?
assets文件夹中app.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Example application</string>
<string name="app_author">Erwin</string>
<string name="app_copyright">illumation (c) 2014</string>
<string name="app_favicon">assets/appicon.ico</string>
<string name="app_icon">assets/appicon.png</string>
<string name="app_icon_large">assets/appicon-large.png</string>
<string name="app_launch_image">assets/applaunch.png</string>
</resources>
最佳答案
不幸的是,您希望使用 R.string.string_name
访问的所有字符串资源(在 Java 中)或 @string/string_name
(在 XML 中)标识符必须在 .xml
中直接位于 /res/values
中的文件您项目的目录(即,也没有子目录)。
但是,文件名是任意的,您基本上可以拥有任意数量的文件。主要要求是所有字符串资源都位于 <resources>
内。标签。只要每个资源都在该标签内,并且每个文件都在上述目录中,那么它将被编译到您的 R.java
中。 .
当然,这对您的情况没有帮助。
我还应该指出,您不能以编程方式修改您的 Assets 。如果这样做的目的是使数据对您的应用保密,那么您可能希望使用 openFileOuput()
, openFileInput()
, 和 getFilesDir()
标准方法File
和 Stream
对象。这些都涵盖了here .
如果您有必要使用 XML 格式,那么您有几个不同的选项来解析 XML,其中一些选项已详细说明 here .我用过 XmlPullParser
, 而且很容易实现。
关于Android:res/strings.xml,包括另一个文件夹中的另一个字符串文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431191/