如何在xml文件中搜索文本并使用qml进行更改?

时间:2013-03-07 00:25:56

标签: xml qml

我正在尝试编写一个使用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,然后将丢失更改为是或否。有一个简单的方法吗?

3 个答案:

答案 0 :(得分:2)

由于QML没有文件I / O,我很好奇你是如何实际阅读这个文件的。

假设您从XMLHttpRequest获取此XML,听起来您想在javascript中执行此操作。由于javascript的设计并未考虑数据操作任务,因此您可以访问的唯一库可以帮助您成为字符串操作库。如果你真的不想编写C ++(你可以访问实际的XML解析器库),并且你的xml保持非常简单,你可以使用正则表达式来查找和替换相应的文本。

答案 1 :(得分:1)

您可以使用XSLT将XML转换为QML。

参考:http://www.w3schools.com/xsl/

答案 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