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 }
}

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.