2

我正在尝试为使用 QML 的 Ubuntu touch 编写应用程序。我现在要做的是搜索一个 xml 文件并更改文本。

这是我的 XML 文件:

<phonelist>
  <phone>
    <name>drewphone</name>
    <lost>no</lost>
  </phone>
  <phone>
    <name>sarahpone</name>
    <lost>yes</lost>
  </phone>
</phonelist>

我想搜索 sarahphone 或 drawphone 然后将 lost 更改为 yes 或 no。是否有捷径可寻?

4

3 回答 3

2

由于 QML 没有文件 I/OI 很好奇您实际上是如何读取该文件的。

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

于 2013-03-07T16:53:33.250 回答
1

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

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

于 2013-03-07T00:38:48.503 回答
0

QMLXmlListModel用于从 XML 数据创建只读模型。它可以用作视图元素(如ListView、PathView、GridView)和其他与模型数据交互的元素(如Repeater)的数据源[参考:XmlListModel ]。

最好的方法(即:操作 XML)是在 C++ 中创建一个辅助类(Qt 的 C++ 端有很好的 XML 库Qt XML C++ 类)来完成这项工作,然后在 qml 中通过使用QQmlContext::setContextProperty(const QString &name, QObject *value). 有关简单且说明性的示例,请阅读本段“将对象设置为上下文属性”:Embedding C++ Objects into QML with Context Properties

于 2016-11-11T14:18:37.617 回答