3

我有以下我在我的 android 项目中使用的 .xml。现在,我正在尝试使用钛在 iPhone 中创建相同的内容。有人可以告诉我如何从 xml 文件中获取这些值并在表格视图中显示它们。 ? 如果我给 MainCategories 中的 3 个值应该出现在表格视图中。有人可以告诉我还有其他更好的选择来实现这一点吗?或者我们可以使用 plist 吗?谢谢。

<string-array name="MainCategories">
    <item>Acceleration</item>
    <item>Angle</item>
    <item>Area</item>
</string-array>


<string-array name="Acceleration_array">
    <item>meter/sq sec</item>
    <item>km/sq sec</item>
    <item>mile/sq sec</item>
    <item>yard/sq sec</item>
</string-array>


<string-array name="Angle_array">
    <item>degree</item>
    <item>radian</item>
    <item>grad</item>
    <item>gon</item>
</string-array>
4

2 回答 2

3

试试这个。

变种结果 = []; var 文件名 = 'arrays1.xml'; //保存xml文件 var tableView = Ti.UI.createTableView({ data : result, width : '100%', height : '100%' });

function readXML(fileName)
{

var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, fileName); 
var xmltext = file.read().text; 
var doc = Ti.XML.parseString(xmltext); 

var parentNodeLength = doc.documentElement.getElementsByTagName('string-array').length; 
for (var i = 0; i < parentNodeLength; i++) { 
var attrValue = doc.documentElement.getElementsByTagName('string-array').item(i).attributes.getNamedItem('name').nodeValue;
if (attrValue === 'Angle_array') {

    var parentNode = doc.documentElement.getElementsByTagName('string-array').item(i);
    var subNodeLength = parentNode.getElementsByTagName('item').length;

    for (var j = 0; j < subNodeLength; j++) {

        var title = parentNode.getElementsByTagName('item').item(j).text;
        var row = Ti.UI.createTableViewRow({
            height : 110
        });
        var label = Ti.UI.createLabel({
            height : Ti.UI.SIZE,
            width : Ti.UI.SIZE,
            text : title
        });

        row.add(label);
        result.push(row);
    }
}

}
}
readXML(fileName); 
tableView.setData(result);
win1.add(tableView); 
win1.open();
于 2012-08-29T09:59:18.527 回答
1

我不熟悉钛,但也许这应该可以帮助你:

var result = this.responseText;
var xml = Ti.XML.parseString(result);

var params = xml.documentElement.getElementsByTagName("member");
var name = xml.documentElement.getElementsByTagName("name");
var value = xml.documentElement.getElementsByTagName("string");
var data = [];

for (var i=0;i<params.item.length;i++) {
    Ti.API.log('Param '+i+': Name: '+n.item(i).text);
    Ti.API.log('Param '+i+': Value: '+v.item(i).text);

    // Add to array
    data.push({"name":n.item(i).text,"value":v.item(i).text});
}  

从此链接复制

要在 uitableview 中显示它,请将您的值保存在 nsarray 中并在 tableview 中显示您的数组。这 是一个教程UITableView

于 2012-08-28T08:19:25.757 回答