HIRO's.NET Blog

PowerShellが好き

目次

Blog 利用状況

ニュース

あわせて読みたい

書庫

日記カテゴリ

リンク

簡易XMLビューアを作る(Windows PowerShell Tips)

データを取得してXMLファイルへ保存する(Oracle) (Windows PowerShell Tips)

データを取得してXMLファイルへ保存する その2(Oracle) (Windows PowerShell Tips)

で、Oracleから取得したデータをXML出力する例を紹介しました。

XMLを出力しただけでは見るのが不便なので、簡易XMLビューアを作ってみました。
実行例は下記のとおりです。

View-Xml

View-Xml.ps1

#===============================================================================
# View-Xml: XMLファイルを読み込んで表示する(簡易XMLViewer)
#
# 使用例
#   PS > View-Xml XMLファイルパス
#
# copyright HIRO's.NET(http://hiro.wankuma.com/)
#===============================================================================
function global:View-Xml
{
  Param($XmlFile)

  #パスが指定されているか?
  if ( $XmlFile.Length -eq $null )
  {
    Write-Host "XMLファイルを指定してください"
    return
  }
  
  #存在するパスか?
  if ( -not $(Test-Path $XmlFile) )
  {
    Write-Host $XmlFile + "は存在しません"
    return
  }
  
  #データセットを作成し、XMLファイルを読み込む
  $dtSet = New-Object System.Data.DataSet
  $dtSet.ReadXml($XmlFile)
  
  #===== Formの作成 =====
  [reflection.assembly]::LoadWithPartialName("System.Windows.Forms")
  $form = New-Object System.Windows.Forms.Form
  $form.Text = $XmlFile
  $form.Width = 500
  $form.Height = 400
  
  #===== DataGridViewの作成 =====
  $dgvXML = New-Object System.Windows.Forms.DataGridView
  $dgvXML.Dock = [System.Windows.Forms.DockStyle]::Fill
  $dgvXML.DataSource = $dtSet.Tables[0]
  $form.Controls.Add($dgvXML)
  
  #===== Panelの作成 =====
  $panel1 = New-Object System.Windows.Forms.Panel
  $form.Controls.Add($panel1)
  $panel1.Dock = [System.Windows.Forms.DockStyle]::Bottom
  $panel1.Height = 30
  
  #===== [閉じる]ボタンの作成 =====
  $btnClose = New-Object System.Windows.Forms.Button
  $btnClose.Location = New-Object System.Drawing.Point(405, 4)
  $btnClose.Text = "閉じる"
  $btnClose.anchor = [System.Windows.Forms.AnchorStyles]::Top -bor [System.Windows.Forms.AnchorStyles]::Right
  $btnClose.Add_Click({$form.Close()})
  $panel1.Controls.AddRange($btnClose)
  
  #===== Formを表示 =====
  $form.ShowDialog()
}

使用方法は
View-Xml "XMLファイルのパス"
です。

ポイントは
・データセットを作成して、XMLファイルを読み込む
  $dtSet = New-Object System.Data.DataSet
  $dtSet.ReadXml($XmlFile)


・データセットをDataGridViewに連結する
  $dgvXML.DataSource = $dtSet.Tables[0]

・anchorプロパティ
 anchorプロパティは -bor 演算子を使うとうまくいきます。(-or演算子は試してみたところダメでした)
  -bor はビットごとのOR演算を行います。


です。

あとは、前回までのポイントを御参考下さい。


投稿日時 : 2008年1月23日 11:09

コメントを追加

# thanks for the postmishertAtroro 2010/12/11 18:00 small business grants

What a great resource!

タイトル
名前
URL
コメント