logoWebRelease 2 ユーザーズマニュアル
Version 2.75Y 版
menu
1章 はじめに
  • 1. はじめに
  • 2. WebRelease の利用環境
  • 3. 製品のライセンスについて
2章 ユーザ管理
  • 1. WebRelease のユーザ管理
  • 2. ユーザの登録
  • 3. ユーザの休止
  • 4. ユーザの削除
  • 5. ログインユーザ一覧
  • 6. ログイン履歴
  • 7. ユーザ登録情報の一括処理
3章 サイトの作成
  • 1. サイトの作成
  • 2. サイト設定
  • 3. スタッフ設定
    • 1. スタッフごとのテンプレート設定
    • 2. スタッフのフォルダへのアクセス制限
    • 3. スタッフの承認ステップ
    • 4. スタッフの解任
  • 4. サイトリソース
    • 1. リソースの登録
    • 2. リソースの編集
    • 3. リソースの一括移動
    • 4. リソース名の一括設定
    • 5. リソースの一括削除
    • 6. リソースフォルダ
  • 5. 辞書の管理
  • 6. 外部リンクのチェック
  • 7. サイトのエキスポート
  • 8. サイトのインポート
  • 9. サイトの閉鎖
  • 10. サイトの削除
  • 11. サイトの操作履歴
4章 FTPの設定
  • 1. FTP の設定
  • 2. プライマリチャネルの設定
  • 3. FTP 記録の参照
  • 4. FTP の実行状況
  • 5. FTP 予約(定時起動)の設定
5章 テンプレート
  • 1. テンプレート
  • 2. テンプレートの作成
  • 3. 文書型の定義
  • 4. 要素のタイプ
    • 1. 1行テキスト
    • 2. 複数行テキスト
    • 3. WYSIWYG エディタ
    • 4. ラジオボタン
    • 5. ポップアップボタン
    • 6. チェックボックス
    • 7. 年月日/時分/秒
    • 8. 目次
    • 9. リンク
    • 10. イメージ (GIF/JPG/PNG)
    • 11. 添付ファイル
    • 12. XMLリーダ
    • 13. コンポーネント
    • 14. グループ項目
    • 15. セレクタ
    • 16. 各要素に共通の設定項目
  • 5. テンプレートの展開
    • 1. 要素参照
    • 2. 関数呼び出し
    • 3. 演算子
    • 4. テンプレートリソース
    • 5. リソース参照
    • 6. メソッド
    • 7. 拡張タグ wr-if wr-then wr-else
    • 8. 拡張タグ wr-switch wr-case wr-default
    • 9. 拡張タグ wr-conditional wr-cond
    • 10. 拡張タグ wr-for
    • 11. 拡張タグ wr-break
    • 12. 拡張タグ wr-variable
    • 13. 拡張タグ wr-append
    • 14. 拡張タグ wr-clear
    • 15. 拡張タグ wr-return
    • 16. 拡張タグ wr-error
    • 17. 拡張タグ wr-- と wr-comment
  • 6. WYSIWYG エディタ設定
  • 7. テンプレート・プロファイラ
  • 8. テンプレートのリビジョン
  • 9. テンプレートのダウンロード
  • 10. テンプレートのアップロード
  • 11. テンプレートの上書きアップロード
  • 12. テンプレートのフォルダ
  • 13. テンプレートの状態
  • 14. テンプレートの削除
  • 15. ページ作成後のテンプレート修正
  • 16. 入力フィールドの短縮表示
  • 17. 作成したページの一覧
  • 18. テンプレートを利用可能なスタッフの設定
  • 19. テンプレートの操作履歴
  • 20. テンプレートを参照している目次の一覧
  • 21. テンプレートの検索
6章 コンポーネント
  • 1. コンポーネント
  • 2. コンポーネントの使用例
  • 3. コンポーネントとセレクタ
7章 ページの作成
  • 1. ページの作成の手順
  • 2. ページのプレビュー
  • 3. 実機でのプレビュー
  • 4. ページの状態
  • 5. ページの編集と編集完了
  • 6. ページリソース
    • 1. リソースの登録
    • 2. リソースの編集
    • 3. リソースの一括移動
    • 4. リソースの一括削除
    • 5. リソースフォルダ
  • 7. ページの公開と公開終了
  • 8. ページの削除
  • 9. ページのリビジョン管理
  • 10. ページのリビジョン間の比較表示
  • 11. リンク元一覧
  • 12. ページ内の外部リンク一覧
  • 13. ページの公開状況
  • 14. スケジュール一覧
  • 15. フォルダ
  • 16. バージョニングフォルダ
  • 17. ページの一括処理
  • 18. 一括ページ登録
  • 19. html と関連リソースの zip 取り込み
  • 20. WYSIWYG エディタの使い方
  • 21. Markdown の使い方
  • 22. ページの操作履歴
  • 23. コンテンツ中の語句のチェック
  • 24. ページの検索
8章 マルチデバイス配信
  • 1. 多チャネル化
  • 2. チャネル別コンテンツの生成
  • 3. チャネル選択機能
9章 承認プロセスの設定
  • 1. 承認ステップの定義
  • 2. 承認プロセスの定義
  • 3. 承認プロセスをフォルダに関連付ける
  • 4. 承認プロセスによる公開管理
    • 1. ページの公開承認依頼
    • 2. 承認と差戻
    • 3. 承認プロセスとページの公開終了
    • 4. 承認依頼フォルダ
    • 5. 一括承認依頼
    • 6. 一括承認
    • 7. 緊急対応としてのページの公開と公開終了
    • 8. 承認依頼の削除
    • 9. 進行中の承認依頼の管理
10章 その他の機能
  • 1. ダッシュボード
  • 2. 英語インタフェース
  • 3. タイムゾーンの指定
11章 システムの運用管理
  • 1. WebRelease の停止と起動
  • 2. データのバックアップ
  • 3. メモリ設定
  • 4. メールサーバの設定
  • 5. Proxy サーバの設定
  • 6. その他のシステム設定
  • 7. 証明書のインポート
  • 8. ストレージの管理
  • 9. 操作履歴
  • 10. ログファイルのダウンロード
  • 11. ログインエラーへの対応
  • 12. WebRelease のバージョンアップ
  • 13. ライセンスのアップグレード
  • 14. 期間ライセンスコードの更新
  • 15. WebRelease の Uninstall
12章 索引
  • 1. 関数索引
    • 1. add
    • 2. allObjects
    • 3. allPages
    • 4. channel
    • 5. channelCookieName
    • 6. channelName
    • 7. codePointAt
    • 8. comma3
    • 9. concatenate
    • 10. contentType
    • 11. count
    • 12. currentTime
    • 13. divide
    • 14. encoding
    • 15. fileName
    • 16. fileSize
    • 17. find
    • 18. firstElement
    • 19. folder
    • 20. formatDate
    • 21. formatDateRFC2822
    • 22. formatDateW3CDTF
    • 23. fullURL
    • 24. gengou
    • 25. getXML
    • 26. group
    • 27. halfwidth
    • 28. hasElement
    • 29. hasMethod
    • 30. head
    • 31. indexOfPage
    • 32. isEven と isOdd
    • 33. isFirstElement と isNotFirstElement
    • 34. isFirstPage
    • 35. isLastElement と isNotLastElement
    • 36. isLastPage
    • 37. isNull と isNotNull
    • 38. isNumber
    • 39. isPreview と isNotPreview
    • 40. jstr
    • 41. kmg1000
    • 42. kmg1024
    • 43. lastElement
    • 44. lastModifiedDate
    • 45. length
    • 46. multiply
    • 47. nextElement
    • 48. nextPage
    • 49. number
    • 50. pageCreatedDate と revisionCreatedDate
    • 51. pageID
    • 52. pageRevision
    • 53. pageTitle
    • 54. pageWithPageID
    • 55. parseDate
    • 56. parseDateRFC2822 と parseDateRFC2822Relaxed
    • 57. parseDateW3CDTF
    • 58. parseHtml
    • 59. path
    • 60. prevElement
    • 61. prevPage
    • 62. previewClock
    • 63. quote
    • 64. remainder
    • 65. replaceAll と replaceFirst
    • 66. resourceURL
    • 67. resourceWithName
    • 68. rtlCount
    • 69. rtlRatio
    • 70. scheduledEndDate
    • 71. scheduledStartDate
    • 72. searchText
    • 73. setScale
    • 74. siteTimeZone
    • 75. sort
    • 76. split
    • 77. startsWith と endsWith
    • 78. string
    • 79. stripTags
    • 80. substring
    • 81. subtract
    • 82. suffix
    • 83. tail
    • 84. templateName
    • 85. thisPage
    • 86. toEntityRef
    • 87. toLowerCase と toUpperCase
    • 88. trim
    • 89. unescapeEntities
    • 90. unsplit
    • 91. width と height
  • 2. オブジェクト索引
    • 1. Channel オブジェクト
    • 2. CheckBox オブジェクト
    • 3. Folder オブジェクト
    • 4. HTMLComment オブジェクト
    • 5. HTMLDataNode オブジェクト
    • 6. HTMLDocument オブジェクト
    • 7. HTMLElement オブジェクト
    • 8. HTMLElements オブジェクト
    • 9. HTMLTextNode オブジェクト
    • 10. Page オブジェクト
    • 11. Selector オブジェクト
    • 12. XMLFeed オブジェクト
13章 Appendix
  • 1. サポートされているタイムゾーン
  • 2. プレビュー時の URL 書き換え機能
  • 3. 正規表現
  • 4. 要素名・リソース名・変数名・メソッド名

オブジェクト索引

XMLFeed オブジェクト

XMLFeed オブジェクトは、RSS フィードなど、外部から供給される XML 型式のデータを WebRelease のページデータの一部として取り込んで利用したいときに使用するオブジェクトです。

このオブジェクトを使用するためには、下記の準備が必要になります。

  • 「XMLリーダ」型の要素を持ったテンプレートを作成します。
  • そのテンプレートでページを作成します。作成したページで XML データの場所を指定するための URL と取得間隔(インターバル)を指定します。

「XML リーダ」タイプの要素をテンプレートの展開内で参照すると、参照結果がここで説明している XMLFeed オブジェクトとなります。

XMLFeed オブジェクトに対しては、グループ項目と同じように要素参照を使って構造中の任意の場所にアクセスすることができます。また、ここで説明しているメソッドを呼び出して利用することもできます。

例を使って XMLFeed オブジェクトの使い方を見てみましょう。下記のような XML ファイルにアクセスしてみます。

サンプルの XML ファイル
<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
    xmlns="https://purl.org/rss/1.0/"
    xmlns:rdf="https://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="https://purl.org/dc/elements/1.1/">


    <channel rdf:about="https://www.frameworks.co.jp/support/examples/">
      <title>Example : WebRelease 2 Manual (XMLFeed object)</title>
      <link>https://www.frameworks.co.jp/support/examples/examples1.rdf</link>
      <description>Example : WebRelease 2 Manual (XMLFeed object)</description>
      <dc:language>ja</dc:language>
      <dc:rights>(C) Copyright 2006 FrameWorks Software, Inc. All rights reserved.</dc:rights>
      <dc:date>2006-08-08T00:00:00+09:00</dc:date>
      <items>
        <rdf:Seq>
          <rdf:li rdf:resource="https://www.frameworks.co.jp/support/index.html" />
          <rdf:li rdf:resource="https://www.frameworks.co.jp/" />
        </rdf:Seq>
      </items>
    </channel>


    <item rdf:about="https://www.frameworks.co.jp/support/index.html">
      <title>RSS 1.0 型式のフィード中の 1 つめの item のタイトルです</title>
      <link>https://www.frameworks.co.jp/support/index.html</link>
      <description>これは 1 つめの item 要素に定義されている description 要素です。</description>
      <dc:date>2006-06-15T00:00:00+09:00</dc:date>
    </item>


    <item rdf:about="https://www.frameworks.co.jp/">
      <title>RSS 1.0 型式のフィード中の 2 つめの item のタイトルです</title>
      <link>https://www.frameworks.co.jp/</link>
      <description>これは 2 つめの item 要素に定義されている description 要素です。</description>
      <dc:date>2006-06-13T00:00:00+09:00</dc:date>
    </item>

</rdf:RDF>

この XML ファイルは RSS1.0 型式の RSS フィードファイルです。このサンプルファイルは下記の URL にサンプルとして置かれています。

https://www.frameworks.co.jp/support/examples/example1.rdf

このフィードを取り込んで「リンク付きタイトルリスト」を生成してみましょう。

まず、XML データを取り込む準備をします。XML データを WebRelease のページデータの一部として利用するためには XML リーダ 型の要素を使用する必要があります。

XMLリーダ型の要素を持ったテンプレートを作成してください。テンプレート名はなんでも構いませんが、要素名は、ここでは説明の都合上 feed としておきましょう。もちろん、実際に XMLリーダ型の要素を使ってテンプレートを作成される場合は、要素名は自由に決めていただいて構いません。

そのテンプレートでページを1ページ作成します。作成したページの編集画面で feed の URL 欄に上記の XML ファイルが取得できる URL を指定します。

これでこの XML ファイルをページデータに取り込んで利用する準備ができました。

この RSS1.0 フィードを取り込んで簡単なタイトルリストを生成するための展開の記述は下記のとおりです。先ほど作成したテンプレートの展開に、下記のコードを書き込んでページを preview してみてください。取り込んだ XML ファイルから作成されたタイトルリストが表示されるでしょう。

RSS 1.0 フィードを取り込んでタイトルリストを生成する展開
<html>
<body>
<h2>item のリスト</h2>
<h4>%feed.channel.title%</h4>
<p>%feed.channel.dc:rights%</p>
<dl>
<wr-for list="feed.item" variable="x">
  <dt><a href="%x.link%">%x.title%</a></dt>
  <dd>%x.description%</dd>
</wr-for>
</dl>
</body>
</html>

テンプレートの展開の中で XMLリーダ 要素を参照すると、その XMLリーダ が取得した XML データのトップレベルの Element を表わす XMLFeed オブジェクト (Dom に似ています) が得られます。

この例の場合、テンプレートの展開中で feed を参照すると rdf:RDF というタグ名の XML 要素を表わす XMLFeed オブジェクトが得られます。この XMLFeed オブジェクトは URL から取得した XML データと同じ構造を持つグループ項目として扱うことができます。

展開中で feed を参照すると、それは rdf:RDF を表わす XMLFeed オブジェクトを指しています。この XMLFeed オブジェクトは直下に 1 つの channel という要素と 2 つの item という要素をもったグループ項目と同じように扱うことができます。channel と item は、さらにグループ項目です。channel には title link description dc:language dc:rights dc:date items という子要素があります。また、item には title link description dc:date という子要素があります。

feed.item という要素参照を行なうことで XML 中の長さ 2の item の列にアクセスすることができるわけです。

item はくり返しのある要素ですので wr-for を使ってループしながら処理します。この例では item 要素が 2 つあるので feed.item という参照は長さ 2 の列となりますのでループは 2 回実行されることになります。

item 要素がひとつしかない XML データを受け取った場合にはループは 1 回だけ実行されることになります。また、item 要素が 1 つもない XML データを受け取ってしまった場合にはループ内は 1 回も実行されないことになります。

wr-for の内側で x を参照することで個々の item 要素にアクセス可能です。item は title link description dc:date という 4 つの子要素をもったグループ項目として扱うことができます。item から title や link の値を取り出しながらタイトルリストを生成します。

最後に、チャネル情報の表示についても簡単に説明しておきましょう。channel 要素内の title 要素にアクセスする場合は feed.channel.title となります。同様に channel 要素内の dc:rights 要素にアクセスする場合は feed.channel.dc:rights となります。

なれるまで少々難しいかもしれません。受け取る XML データの形状をよく把握して展開を記述すればいろいろな形状の XML データを自由に扱えるようになるでしょう。

RSS フィードのフォーマットの識別が必要であれば、getFeedFormat() メソッドを使えばフィードのフォーマットを知ることができます。フォーマットにしたがって異る展開が必要になりますので、wr-if でそれぞれのフォーマットに対応した展開を作成すれば、複数のフォーマットに対応することができます。

RSS のフォーマットに合わせて展開する
<body>
....
<wr-if condition="feed.getFeedFormat() == \"Atom\"">
.... Atom 用の展開....
</wr-if>
<wr-if condition="feed.getFeedFormat() == \"RSS1.0\"">
.... RSS1.0 用の展開....
</wr-if>
<wr-if condition="feed.getFeedFormat() == \"RSS2.0\"">
.... RSS2.0 用の展開....
</wr-if>
<wr-if condition="feed.getFeedFormat() == \"Unknown\"">
.... フィードのフォーマットが不明な場合の展開(エラーメッセージ)....
</wr-if>
....
</body>

stripTags() という関数があります。この関数を使用すれば description などの要素中にタグや画像が含まれている場合にそれらを選択的に除去することができます。

description からタグを除去する
<html>
<body>
<h2>item のリスト</h2>
<h4>%feed.channel.title%</h4>
<p>%feed.channel.dc:rights%</p>
<dl>
<wr-for list="feed.item" variable="x">
     <dt><a href="%x.link%">%x.title%</a></dt>
     <dd>%stripTags(x.description)%</dd>
</wr-for>
</dl>
</body>
</html>

タグに付けられている属性を取得したい場合には getAttributeNames() メソッドと getAttributeValue() メソッドを使用することができます。

XMLFeed オブジェクトのメソッド一覧

メソッド名 説明
getAttributeNames() XML 文書中の要素に付けられている属性の名前のリストを返す
getAttributeValue(name) XML 文書中の要素に付けられている属性の値を返す
getFeedFormat() XML ファイルのフォーマットを判定する
getFeedURL() XML リーダに指定されている URL を返す
getNodeName() XML 文書中の要素の名前を返す
getNodeType() XML 文書中の要素のタイプ名を返す

getAttributeNames()

このメソッドはレシーバとなっている XMLFeed オブジェクトが表わしている XML 文書中の要素に付けられている属性の名前のリストを返します。

書式

getAttributeNames()

利用例

このページの最初の説明の部分で使用した例を考えます。getAttributeNames() メソッドの利用例を追加してあります。

トップレベルの rdf:RDF 要素に付けられている属性の名前の一覧を表示してみる
<html>
<body>
<h2>item のリスト</h2>

<!-- getAttributeNames() メソッドの利用例-->
<wr-for list="feed.getAttributeNames()" variable="x">
%x%<br>
</wr-for>
<!-- 利用例おわり -->

<h4>%feed.channel.title%</h4>
<p>%feed.channel.dc:rights%</p>
<dl>
<wr-for list="feed.item" variable="x">
  <dt><a href="%x.link%">%x.title%</a></dt>
  <dd>%x.description%</dd>
</wr-for>
</dl>
</body>
</html>

この例では、getAttributeNames() メソッドを feed をレシーバにして呼び出しています。結果として、トップレベルの rdf:RDF 要素に付けられている属性の名前の一覧が得られます。

getAttributeValue(name)

このメソッドはレシーバとなっている XMLFeed オブジェクトが表わしている XML 文書中の要素に付けられている属性の値を返します。

書式

getAttributeValue(name)
name:

取り出したい属性名を指定します。

補足説明

指定された属性がレシーバに定義されていない場合には空文字列が返されます。

利用例1

このページの最初の説明の部分で使用した例を考えます。getAttributeValue() メソッドの利用例を追加してあります。

トップレベルの rdf:RDF 要素に付けられている属性の名前とその値の一覧を表示してみる
<html>
<body>
<h2>item のリスト</h2>

<!-- getAttributeValue() メソッドの利用例-->
<wr-for list="feed.getAttributeNames()" variable="x">
%x% = [%feed.getAttributeValue(x)%]<br>
</wr-for>
<!-- 利用例おわり -->

<h4>%feed.channel.title%</h4>
<p>%feed.channel.dc:rights%</p>
<dl>
<wr-for list="feed.item" variable="x">
  <dt><a href="%x.link%">%x.title%</a></dt>
  <dd>%x.description%</dd>
</wr-for>
</dl>
</body>
</html>

この例では、getAttributeNames() メソッドで取り出した各属性名について、今度は getAttributeValues() メソッドを使って、その属性に指定されていた値(文字列)を取得して表示しています。

利用例2

getAttributeValue() メソッドを使って Atom フィードの entry 要素中にある link 要素の href 属性を取り出してリンク先として使用してみます。

Atom フィードの entry 要素中にある link 要素の href 属性を取り出して使ってみる
<body>
....
<dl>
<wr-for list="feed.entry" variable="e">
<dt><a href="%e.link.getAttributeValue("href")%">%e.title%</a></dt>
<dd>%stripTags(e.summary)%</dd>
</wr-for>
</dl>
....
</body>

Atom フィード中の entry 要素の直下の link 要素に指定されている href 属性をリンク先として取り出して使用しています。

getFeedFormat()

getFeedFormat() メソッドは、XMLリーダ に指定されている URL から取得した XML ファイルのフォーマットを調べたい時に使用します。

取得した XML ファイルのトップレベルの要素名が rdf:RDF であった場合には、フィードのフォーマットは RSS1.0 であると判断し、文字列 "RSS1.0" を返します。

取得した XML ファイルのトップレベルの要素名が rss であった場合には、フィードのフォーマットは RSS2.0 であると判断し、文字列 "RSS2.0" を返します。

取得した XML ファイルのトップレベルの要素名が feed であった場合には、フィードのフォーマットは Atom であると判断し、文字列 "Atom" を返します。

いずれでもない場合には文字列 "Unknown" が返されます。

書式

getFeedFormat()

利用例

テンプレート中に feed という名称で「XMLリーダ」型の要素を定義します。

そのテンプレートを使ってページを作成します。ページ編集画面で URL 欄にどこか RSS フィードを提供しているURL を指定します。(たとえば https://www.frameworks.co.jp/support/examples/example1.rdf など)

インターバルには 1800 や 3600 など、フィードへのアクセス間隔を秒単位で指定しておきます。

下記のような展開の記述で、フィードされてくる XML ファイルのフォーマットを調べることができます。

RSS フィードのフォーマットを調べて表示してみる
<body>
....
<wr-if condition="feed.getFeedFormat() == \"RSS1.0\"">
%feed.getFeedURL()% の フィードのフォーマットは RSS 1.0 です。
</wr-if>
<wr-if condition="feed.getFeedFormat() == \"RSS2.0\"">
%feed.getFeedURL()% の フィードのフォーマットは RSS 2.0 です。
</wr-if>
<wr-if condition="feed.getFeedFormat() == \"Atom\"">
%feed.getFeedURL()% の フィードのフォーマットは Atom です。
</wr-if>
<wr-if condition="feed.getFeedFormat() == \"Unknown\"">
%feed.getFeedURL()% の フィードのフォーマットは不明です。
</wr-if>
....
</body>

テンプレートの展開中で XMLリーダ型の要素 feed を参照すると XMLFeed 型のオブジェクトが得られます。feed.getFeedFormat() という記述で XMLFeed オブジェクトの getFeedFormat() メソッドを呼び出します。

getFeedURL()

getFeedURL() メソッドは、XMLリーダ に指定されている URL を返します。返される URL はページ編集画面の URL 欄に入力されている文字列です。

書式

getFeedURL()

利用例

テンプレート中に feed という名称で「XMLリーダ」型の要素を定義します。

そのテンプレートを使ってページを作成します。ページ編集画面で URL 欄にどこか RSS フィードを提供しているURL を指定します。(たとえば https://www.frameworks.co.jp/support/examples/example1.rdf など)

下記のような展開の記述で、フィードを取りに行く URL を調べることができます。

XML ファイルの URL を表示してみる
<body>
....
<p>要素 feed は %feed.getFeedURL()% から XML データを取り込みます。</p>
....
</body>

getNodeName()

このメソッドはレシーバとなっている XMLFeed オブジェクトが表わしている XML 文書中の要素の名前(タグ名)を返します。

書式

getNodeName()

利用例1

テンプレート中に feed という名称で「XML リーダ」型の要素を定義します。

そのテンプレートを使ってページを作成します。ページ編集画面で URL 欄にどこか RSS フィードを提供しているURL を指定します。(たとえば https://www.frameworks.co.jp/support/examples/example1.rdf など)

インターバルには 1800 や 3600 など、フィードへのアクセス間隔を秒単位で指定しておきます。

下記のような展開の記述で、取得した XML ファイルのトップレベルの要素の要素名を表示することができます。

<body>
....
%feed.getNodeName()%
....
</body>

フィードが RSS1.0 で与えられている場合には rdf:RDF が表示されるでしょう。RSS2.0 の場合には rss が、また Atom の場合には feed と表示されるはずです。

利用例2

フィード中に含まれているXML要素を手繰りながら要素の名前を出力してみましょう。

XMLFeed オブジェクトの説明(このページの最初の部分)では、取得した XML データをグループ項目のように扱うことで XML ファイル中のデータにアクセスする方法を説明しました。

XML データに対するアクセス方法は、グループ項目のように扱う方法以外に、配列として扱う方法も使うことができます。この方法で XML データを操作しなければならなくなるケースは少ないと思われますが、下記の例のような展開を使用することも可能です。

トップレベル直下のノードのノード名とノードタイプを一覧表示してみる
<body>
....
<wr-for list="feed" variable="p">
getNodeName() = "%p.getNodeName()%" getNodeType() = "%p.getNodeType()%"<br>
</wr-for>
....
</body>

このコードでは、取得した XML データのトップレベルの要素 (たとえば RSS1.0 の場合には rdf:RDF 要素になります) の直下の要素を先頭から順にスキャンし、その要素の名前とタイプを getNodeName() メソッドと getNodeType() メソッドで取得して表示しています。

表示結果は、たとえば、XML データとして

https://www.frameworks.co.jp/support/examples/example1.rdf

を使用した場合には、

getNodeName() = "#text" getNodeType() = "Text"
getNodeName() = "channel" getNodeType() = "Element"
getNodeName() = "#text" getNodeType() = "Text"
getNodeName() = "item" getNodeType() = "Element"
getNodeName() = "#text" getNodeType() = "Text"
getNodeName() = "item" getNodeType() = "Element"
getNodeName() = "#text" getNodeType() = "Text"

という表示になるでしょう。

getNodeType() メソッドが "Element" であると答えている XMLFeed オブジェクトは XML ファイル中のタグに対応しています。"Text" と答えている部分は、タグとタグの間にある文字列に対応しています。このサンプルデータの場合、この "Text" の部分はスペースと改行記号です。例えば、一つめの item 要素の閉じタグと二つめの item 要素の開始タグの間にスペースや改行があるため、そこに "Text" タイプの要素があると解釈されているわけです。

このように、XML データを名前でアクセスせずに、先頭からスキャンしながらアクセスする場合には、対象としている XMLFeed オブジェクトが XML データ中のどのタグに対応しているのかを知る方法が必要になります。この getNodeName() メソッドを使って、名前が判らない XMLFeed オブジェクトから、対応するタグの名前を取り出すことができます。また、getNodeType() メソッドを使えば、対象としている XMLFeed オブジェクトが対応している XML ファイル上の部分(タグなのか、タグとタグの間のテキストなのかなど)を知ることができます。

getNodeType()

このメソッドはレシーバとなっている XMLFeed オブジェクトが表わしている XML 文書中の要素のタイプ名を返します。

返される値は以下のいずれかです。

  • Attr
  • CDATASection
  • Comment
  • Document
  • DocumentFragment
  • DocumentType
  • Element
  • Entity
  • EntityReference
  • Notation
  • ProcessingInstruction
  • Text

書式

getNodeType()

利用例

getNodeName() メソッドの利用例を参照してください。

前

次

© 2000 - 2024  FrameWorks Software, Inc.