このページでは

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

© 2026 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.