[2369] Re: 1に関しては…

投稿日 2019/02/06(Wed) 23:01:29
投稿者 通り道
参照先

こんにちは。
XML関連の命令は、デザイナの機能から見える命令と、マニュアルに記載の
命令がどうも対応がよくわかりませんでした。
プロデルのXMLの命令は、標準的なXPathを受け付けるものと、
プロデル独自のXMLパスもしくは選択パスと呼んでいるものがあるようです。
プロデル独自の方は、マニュアルの記載も少なく説明もないので
内容(テキストノード)を検索条件とするようなものはわかりませんでしたが、
XPathならば、いろいろなサイトに情報を参考にしてなんとかなりました。
※「/」区切りが効く命令はXPathで、「\」区切りが効く命令は選択パスなので、
 命令を試すことで区別はつきます。
以下のいずれかの命令で、「名前」のXML要素が取得できるので、
それに対して内容を更新する という形になるようです。
(内容更新の命令は、XPathではないようなのでだめっぽいです)
------
要素一覧は、データから「「/果物一覧/果物/名前[text()="りんご"]」」という要素をすべて取得する
単要素は、データから「「/果物一覧/果物/名前[text()="りんご"]」」という要素を取得する
------
前者は、結果がXML要素の配列になります。後者は、結果がXML要素です。
要素を取得できていたら、それぞれ、以下の命令で更新できます。
------
要素一覧(1)の内容を「苺」に変える
単要素の内容を「苺」に変える
------
どちらの命令の場合でも、データに保存されているXML文章のXML要素を更新しているため、データの内容も更新されます。

蛇足。
----
単要素は、データから「「/果物一覧/果物/名前[text()="りんご"]/..」」という要素を取得する
----
とすると、名前の内容がリンゴとなる要素の、1つ親の要素(果物)を取得できます。
さらに、
----
単要素は、データから「「/果物一覧/果物/名前[text()="りんご"]/../値段」」という要素を取得する
----
とすれば、りんごの値段の要素を取得したりもできます。
また、仮に、xmlが、以下のようになっている場合、
----
<果物>
<名前>りんご</名前>
<値段 単位="円">80</値段>
<値段 単位="$">0.50</値段>
</果物>
----
以下のようなことも可能です。
----
単要素は、データから「「/果物一覧/果物/名前[text()="りんご"]/../値段[@単位="$"]」」という要素を取得する
----
また、本来は、XPathによる取得(検索)は、XML全体でも各要素からでも
行えるはずなのですが、プロデルではXML文章からしかたどれないようですので、
再帰的にループして絞り込むような場合にはちょっと不便かもしれません。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -