在Javascript WinRT应用程序中读取XML资源文件

时间:2012-09-27 04:16:20

标签: javascript windows-8 windows-runtime embedded-resource

我正在尝试为我的WinRT实验为某些特定于应用的项目(例如API密钥)设置配置文件。

到目前为止,我在项目的根目录中添加了一个“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文件的内容

1 个答案:

答案 0 :(得分:4)

试试这个......

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

您现在可以根据需要使用该文件来解析和处理数据。