我试图在plist版本中读取.strings文件。我有<key>和<string>。我不确定如何在我的javascript代码中阅读这些输入。

时间:2016-11-10 07:35:36

标签: javascript dictionary

我已经有了一个javascript代码,我输入一个字符串,找到预测单元格中的预期内容并点击它。非常简单,工作正常。但是现在我给出了一个plist数据,我不知道如何阅读它并在我的代码中使用它。

这是一个提供给我的plist的例子:

<plist version="1.0">
<dict>
    <key>Animal</key>
    <string>cat | dog | chicken | cow</string>
    <key>Fruits</key>
    <string>apple | cherries | kiwi</string>
</dict>
</plist>

首先,我如何阅读每个部分?我明白,当你输入猫时,根据这个plist,预期结果将是动物。所以我的问题是如何做到以下:

我想阅读并将其分配给稍后要使用的值 我还需要读取并分配到数组

示例:

var inputStringArray = ["cat","dog","chicken","cow"];
var expectedInput = "Animal"; 

1 个答案:

答案 0 :(得分:0)

“plist”格式是一个XML,因此您可以使用DOMParser将JavaScript作为JavaScript中的任何其他XML进行解析:

// Code goes here

var plistString = '<plist version="1.0"><dict><key>Animal</key><string>cat | dog | chicken | cow</string><key>Fruits</key><string>apple | cherries | kiwi</string></dict></plist>';

var parser = new DOMParser()
var xmlDoc = parser.parseFromString(plistString, "text/xml");

var dictEl = xmlDoc.getElementsByTagName('dict')[0];
var keyAndValues = dictEl.childNodes;

for(var i = 0; i < keyAndValues.length; i++) {
  var el  = keyAndValues[i];
  console.log(el.nodeName, '-', el.textContent);
}

您创建DOMParser并使用parseFromString()方法解析您的plist。

对象xmlDoc包含带有解析XML的DOM,您可以导航它以获得所需的外部节点。在上面的示例中,在<dict>元素内的键/值对象上循环并打印它们。运行上面的代码,你应该在控制台中看到以下几行:

key - Animal
string - cat | dog | chicken | cow
key - Fruits
string - apple | cherries | kiwi