XmlListModelRole QML Type

XmlListModel への役割の指定について ...続きを読む

Import Statement: import QtQml.XmlListModel

プロパティ

詳細説明

Qt Qml.

プロパティのドキュメント

attributeName : string

データを読み込むために使用される XML 要素の属性。XML要素はelementName プロパティで指定します。

例えば、以下のモデルには「title」という名前のロールがあり、XML要素<title> からデータを読み込んでいます。また、"timestamp" という名前の別のロールがあり、同じ XML 要素<title> を使用しますが、実際の値を抽出するためにその "created" 属性を読み取ります。

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole { name: "title"; elementName: "title" }
    XmlListModelRole {
        name: "timestamp"
        elementName: "title"
        attributeName: "created"
    }
}

ListView {
    anchors.fill: parent
    model: xmlModel
    delegate: Text { text: title + " created on " + timestamp }
}

attributeNameが指定されている場合、elementName は空のままにすることができる。この場合、クエリの最上位 XML 要素の属性が読み込まれます。

例えば、次のようなxml文書があったとします:

<documents>
    <document title="Title1"/>
    <document title="Title2"/>
</documents>

ドキュメントのタイトルを抽出するには、以下のモデルが必要です:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole {
        name: "title"
        elementName: ""
        attributeName: "title"
    }
}

指定した XML 要素の属性を解析する必要がない場合は、このプロパティを空白のままにします。

elementNameも参照してください


elementName : string

データの読み取りに使用する XML 要素の名前、または XML 要素へのパス。要素には実際にテキストが含まれていなければならない。

オプションで、attributeName プロパティを指定して、データを抽出することができます。

例えば、以下のモデルには "title "というロールがあり、XML要素<title> からデータを読み取ります。また、"timestamp" という名前の別のロールがあり、同じ XML 要素<title> を使用しますが、実際の値を抽出するためにその "created" 属性を読み取ります。

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole { name: "title"; elementName: "title" }
    XmlListModelRole {
        name: "timestamp"
        elementName: "title"
        attributeName: "created"
    }
}

ListView {
    anchors.fill: parent
    model: xmlModel
    delegate: Text { text: title + " created on " + timestamp }
}

attributeName が指定されている場合、elementName は空のままにすることができる。この場合、クエリの最上位 XML 要素の属性が読み込まれます。

例えば、次のようなxml文書があるとします:

<documents>
    <document title="Title1"/>
    <document title="Title2"/>
</documents>

ドキュメントのタイトルを抽出するには、以下のモデルが必要です:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole {
        name: "title"
        elementName: ""
        attributeName: "title"
    }
}

elementName プロパティには、ネストされた xml 要素へのパスを指定できます。パス内のすべての要素は、'/' 文字で結合する必要があります。

たとえば、次のようなxml文書があるとします:

<documents>
    <document>
        <title>Title1</title>
        <info>
            <num_pages>10</num_pages>
        </info>
    </document>
    <document>
        <title>Title2</title>
        <info>
            <num_pages>20</num_pages>
        </info>
    </document>
</documents>

次のような役割でページ数を抽出することができます:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    // ...
    XmlListModelRole {
        name: "pages"
        elementName: "info/num_pages"
    }
}

注: 要素へのパスは、'/' で始まったり終わったりしてはいけません。

attributeNameも参照してください


name : string

役割の名前。この名前は、このロールのモデル・データにアクセスするために使用されます。

例えば、以下のモデルには "title "という名前のロールがあり、ビューのデリゲートからアクセスすることができます:

XmlListModel {
    id: xmlModel
    source: "file.xml"
    query: "/documents/document"
    XmlListModelRole { name: "title"; elementName: "title" }
}
ListView {
    model: xmlModel
    delegate: Text { text: title }
}

このロールは、ビューのデリゲートからアクセスすることができます 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。