2012-09-27 52 views
6

我正在尝试为我的WinRT实验设置一些特定于应用程序的项目(如API键)的配置文件。在Javascript WinRT应用程序中读取XML资源文件

到目前为止,我在项目的根目录中添加了一个“config.xml”文件,将其标记为属性中的资源...然后我被卡住了。

我能找到的每个例子似乎都涉及到JSON资源文件(这些文件在某种程度上与常规的本地化有关,似乎并不适合一般的配置文件?),从磁盘加载文件(这不起作用因为资源被编译到.pri文件中),或者使用C#。

那么我该如何使这个工作在我的Javascript/HTML5应用程序?

我的最新尝试是这样的:

var uri = new Windows.Foundation.Uri('ms-resource:///config'); 
var xml = Windows.ApplicationModel.Resources.ResourceLoader 
              .getStringForReference(uri); 

但是,这并不工作,并抛出以下异常:

0x80073b1f - JavaScript runtime error: ResourceMap Not Found. 

我缺少什么?


我觉得我越来越近:

var r = Windows.ApplicationModel.Resources.Core.ResourceManager 
       .current.mainResourceMap.lookup('Files/config.xml'); 
var candidates = r.resolveAll(); 
candidates[0].getValueAsFileAsync().done(readXml); 

此找到该文件的资源,但所有的候选是包含在文件中的原始绝对路径,所以getValueAsFileAsync()抛出一个异常,并称“系统找不到指定的文件。“ (并且不调用readXml回调)。

所以我仍然无法得到这个XML文件的内容

回答

3

尝试......

var uri = new Windows.Foundation.Uri('ms-appx:///myFolder/myConfig.xml'); 
var file = Windows.Storage.StorageFile.getFileFromApplicationUriAsync(uri); 

现在,您可以使用文件来分析,并根据需要处理数据。

+0

感谢您的建议,但这仅适用于文件在属性中标记为“内容”的情况。我将它标记为“资源”,因此它不再存在于磁盘上。 –

相关问题