我正在尝试编写一个使用QML的Ubuntu touch应用程序。我现在要做的是搜索xml文件并更改文本。
这是我的XML文件:
<phonelist>
<phone>
<name>drewphone</name>
<lost>no</lost>
</phone>
<phone>
<name>sarahpone</name>
<lost>yes</lost>
</phone>
</phonelist>
我想搜索sarahphone或drewphone,然后将丢失更改为是或否。有一个简单的方法吗?
答案 0 :(得分:2)
由于QML没有文件I / O,我很好奇你是如何实际阅读这个文件的。
假设您从XMLHttpRequest获取此XML,听起来您想在javascript中执行此操作。由于javascript的设计并未考虑数据操作任务,因此您可以访问的唯一库可以帮助您成为字符串操作库。如果你真的不想编写C ++(你可以访问实际的XML解析器库),并且你的xml保持非常简单,你可以使用正则表达式来查找和替换相应的文本。
答案 1 :(得分:1)
您可以使用XSLT将XML转换为QML。
答案 2 :(得分:0)
QML有XmlListModel
,用于从XML数据创建只读模型。它可以用作视图元素(例如ListView,PathView,GridView)和与模型数据交互的其他元素的数据源(例如Repeater)[reference:XmlListModel]。
执行此操作的最佳方法(即:操作XML)是在c ++中创建帮助类(Qt的c ++侧具有良好的XML库Qt XML C++ Classes),以完成工作和稍后使用QQmlContext::setContextProperty(const QString &name, QObject *value)
访问qml中的函数(或其他)。有关简单和说明性示例,请阅读本段“将对象设置为上下文属性”:Embedding C++ Objects into QML with Context Properties。