XMLDB.jp

XMLDB開発支援
HOME  >  XMLDB開発支援  >  NeoCoreを使ってみる(3)

NeoCoreを使ってみる(3)

4. XMLの削除

コンソール左メニューの「Delete」リンクをクリックすると、XML削除画面が表示されます。

要素を指定してデータを削除します。
XQuery Target:
  /ND/weather-data[@prefecture="osaka"]/weather[@date="2012-01-04"]


Delete-Resultsで1つ削除されていることが判りますが、念のため、「Query」画面で検索します。
XQuery Target:
  /ND/weather-data[@prefecture="osaka"]/weather/@date


XML文書を丸ごと削除したい場合、次のように指定します。
XQuery Target:
  root(/ND/weather-data[@prefecture="tokyo"])

ここで次のように指定してしまうと、weather-dataは削除されますがMetaDataが削除漏れで残ります。
XQuery Target:
  /ND/weather-data[@prefecture="tokyo"]

5. XMLの挿入

先ほど削除した要素を追加しなおします。
コンソール左メニューの「Insert」リンクをクリックすると、XML挿入画面が表示されます。

「XQuery Target」で指定した要素の兄弟要素として挿入されます。
XQuery Target:
/ND/weather-data[@prefecture="osaka"]/weather[@date="2012-01-02"] {-- 日付は任意 --}


XML to Insert:
<weather date='2012-01-04' hour='15'>
  <condition>曇</condition>
  <pressure_hpa>1001.4</pressure_hpa>
  <rainfall_mm>--</rainfall_mm>
  <temperature_c>6.0</temperature_c>
  <humidity>38</humidity>
  <wind><speed_ms>10.1</speed_ms><direction>西北西</direction></wind>
</weather>


Insert-Resultsで1つ挿入されていることが判りますが、念のため、「Query」画面で検索します。
兄弟ノードとして挿入されてはいますが、その位置は不定であることが解ります。
XQuery Target:
/ND/weather-data[@prefecture="osaka"]/weather/@date


挿入はクエリにヒットした数だけ行われるため、下記のようにしてしまうと意図通りの操作ができません。
XQuery Target:
{-- 6回検索ヒットするので6回挿入されてしまう --}
/ND/weather-data[@prefecture="osaka"]/weather


XML to Insert:
<weather date='2012-01-04' hour='15'>
  <condition>曇</condition>
  <pressure_hpa>1001.4</pressure_hpa>
  <rainfall_mm>--</rainfall_mm>
  <temperature_c>6.0</temperature_c>
  <humidity>38</humidity>
  <wind><speed_ms>10.1</speed_ms><direction>西北西</direction></wind>
</weather>




6. XMLの修正

最後に、要素を修正します。
コンソール左メニューの「Modify」リンクをクリックすると、XML修正画面が表示されます。

「XQuery Target」で要素を指定し、その修正データを「XML To Modify」に指定します。修正する要素に異なる名前の要素を指定するとエラーになります。
今回は <rainfall_mm>--</rainfall_mm> を <rainfall_mm>なし</rainfall_mm> に変更します。
XQuery Target:
/ND/weather-data/weather/rainfall_mm[text()="--"]


XML to Insert:
<rainfall_mm>なし</rainfall_mm>


「Query」画面で確認します。
XQuery Target:
/ND/weather-data/weather/rainfall_mm


▲このページのTOPへ

  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド