「夫を成功」へ導く妻の秘訣 座談会

xmlからxmlへの変換時に出るエラーについての質問です。

元データとなるxmlが下のような構造をしています。
ルート要素の要素ノードが2つあるものです。

<A1>
  <B1>aaa</B1>
  <B2>
    <C1>bbb</C1>
  </B2>
</A1>
<A2>ccc</A2>

これをxsltで違う形のxmlに変換するのですが、変換中にエラーが出てしまいます。
(使用しているのはApache xalanです)
現在は元データに、<root>ノードを最上位に加えることにより、変換しているのですが、他の方法で対処できないでしょうか?
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

ルートノードが一つに限られるのは,整形式のXMLでは絶対の基本です。


なので,ルートノードを付け加えないと,xsltでの変換はできません。

ただ,質問のようなXMLはfragment(フラグメント,断片)と言い,XMLを解析して操作するソフトをXMLパーサと言いますが,DOMを扱えるパーサであれば,フラグメントを読み込んで,ルートノードを付け加えるなどの処理をして,xsltで変換するなどが可能かもしれません。
なおxalanは,小生は使ったことがありませんので,このような処理が可能かどうかは分かりません。

あるいは,XMLは,単なるテキストファイルなので,プログラム的にルートノードを付加することも難しくはないので,フラグメントの読み込みなどよりも,テキストとして読み込んで処理するほうが簡単かもしれません。
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

DOMですか、そちらも勉強してみます。

確かにルートノードをつけてしまえば変換できるので、付け加える方法を考えてみたいと思います。

お礼日時:2008/12/11 00:13

XML初心者で逆質問のようになってしまいますが、そもそもXML文書は複数のルートノードが許されるのでしょうか?



XSLTでは正しいXML文書とみなされないためにエラーが起きているということはないでしょうか?

以前にどこかで、同じ質問(「ドキュメントの末尾に…」のエラーが発生する)をされている方がいて、回答に「ルートノードがないせいです」と付いているのを見た覚えがあります。
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

私も初心者ですから断定は出来ませんが、XMLでは許されない記述ルールだと思います。
ドキュメントの末尾に…のエラーは<A2>が存在することにより出ているので、原因はそこにあると認識しています。
ただ元データの形式はこちらで変更することができないものでして、何とかXSLTで変換出来ないかと思いまして、こちらで質問した次第です。
やはりXSLTだと原則に反しているので無理なのでしょうか。

お礼日時:2008/12/09 09:29

現在の不具合が出ているxsltなどを提示したほうが回答が付きやすいかと思います


どのように変換したくて、どんなエラーに見舞われているとかを具体化しましょう
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
使用しているxslは下記のような物です。
子要素を持たない要素を出力するものです。

<?xml version="1.0" encoding="EUC-JP"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="EUC-JP" method="xml" indent="yes" />

<xsl:template match="*">
  <xsl:choose>
    <xsl:when test="count(*) = 0">
      <xsl:copy-of select="." />
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="*" />
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>

その際に下記エラーが発生し、変換することが出来ません。

file:///D:/***.xml; 行番号8; 列番号-1; XSLT エラー (javax.xml.
transform.TransformerException): ドキュメントの末尾に不正な文字 &#x3c; があります。

元のxmlを下記のようにすると問題なく通ります。
<root>
<A1>
   <B1>aaa</B1>
   <B2>
     <C1>bbb</C1>
   </B2>
</A1>
<A2>ccc</A2>
</root>

お礼日時:2008/12/09 04:36

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel-VBAでXMLの複数ノードの取り出し

すみません、いつも、いろいろな方に助けて頂いていますが、また、初歩的な質問をさせて頂きます。
Excel2007のVBAでXMLの扱いが良くわかっておりません。
以下のプログラムで複数ItemのASINを出力したいのですが、うまくいきません。
XMLがきちんと取得できているのはWireSharkでキャプチャして確認できております。
VBAで表示出力するのがうまくいきません。ご教授方よろしくお願いします。
selectSingleNodeで一つの場合はうまく取り出せています。複数ノードの場合にSelectNodesの使い方に問題がありますでしょうか?
型の宣言などに誤りがありますでしょうか?

また、基本的なことですが、MSXML2を使おうとしたら、Excel2007で使えませんでした。
XMLDOMは、サポート切れ?で古いので、MSXML2を使うのが良いとWebで見ました。
DLLなどが必要な気がしているのですが、よくわかっていないのでご教授頂きたいです。

すみませんが、よろしくお願いします。

*****VBAプログラム(抜粋)******
Dim xml As Object, xmlItems As Object, objPrice As Object
'XML オブジェクト作成
Set xml = CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.Load URI

Set xmlItems = xml.SelectNodes("ItemLookupResponse/Items/Item")

For Each objPrice In xmlItems
' ASIN
If Not objPrice.SelectSingleNode("ASIN") Is Nothing Then
curWS.Cells(rowIndex, ASINCol) = objPrice.SelectSingleNode("ASIN").text
End If
Next


*****取得したXML(抜粋)******
<ItemSearchResponse >
<Items>
<Item>
<ASIN>111</ASIN>
</Item>
<Item>
<ASIN>222</ASIN>
</Item>
<Item>
<ASIN>333</ASIN>
</Item>
</Items>
</ItemSearchResponse>

すみません、いつも、いろいろな方に助けて頂いていますが、また、初歩的な質問をさせて頂きます。
Excel2007のVBAでXMLの扱いが良くわかっておりません。
以下のプログラムで複数ItemのASINを出力したいのですが、うまくいきません。
XMLがきちんと取得できているのはWireSharkでキャプチャして確認できております。
VBAで表示出力するのがうまくいきません。ご教授方よろしくお願いします。
selectSingleNodeで一つの場合はうまく取り出せています。複数ノードの場合にSelectNodesの使い方に問題がありますでし...続きを読む

Aベストアンサー

とりあえず下記で111,222,333が取得できました。ご参考まで。
当方、Windows7Home64bit/xl2010です。
環境は異なりますが、MSXML3あたりでも動くコードだと思います。
コード中XPATHはItemLookupResponseなのに、テストデータの方はItemSearchResponseになっていますが大丈夫ですか?

'MSXML6に参照設定
Sub test()
Dim XML As New MSXML2.DOMDocument60
Dim xmlItems As IXMLDOMNodeList
Dim objPrice As IXMLDOMNode

XML.async = False
' XML.validateOnParse = False
' XML.resolveExternals = False
' XML.preserveWhiteSpace = True

XML.Load GetDesktopPath & "\test.xml" 'お示しのデータをコピペして保存
Set xmlItems = XML.SelectNodes("ItemSearchResponse/Items/Item")
For Each objPrice In xmlItems
' ASIN
If Not objPrice.SelectSingleNode("ASIN") Is Nothing Then
Debug.Print objPrice.SelectSingleNode("ASIN").Text
End If
Next

'直接ASINまで指定しても良いと思うが...
' Set xmlItems = XML.SelectNodes("ItemSearchResponse/Items/Item/ASIN")
' If xmlItems.Length > 0 Then
' For Each objPrice In xmlItems
' Debug.Print objPrice.Text
' Next
' End If

Set XML = Nothing
End Sub

Private Function GetDesktopPath() As String
Dim wScriptHost As Object, strInitDir As String
Set wScriptHost = CreateObject("Wscript.Shell")
GetDesktopPath = wScriptHost.SpecialFolders("Desktop")
Set wScriptHost = Nothing
End Function

とりあえず下記で111,222,333が取得できました。ご参考まで。
当方、Windows7Home64bit/xl2010です。
環境は異なりますが、MSXML3あたりでも動くコードだと思います。
コード中XPATHはItemLookupResponseなのに、テストデータの方はItemSearchResponseになっていますが大丈夫ですか?

'MSXML6に参照設定
Sub test()
Dim XML As New MSXML2.DOMDocument60
Dim xmlItems As IXMLDOMNodeList
Dim objPrice As IXMLDOMNode

XML.async = False
' XML.validateOnParse = False
' XML.resolv...続きを読む

QXMLファイル内のデータ(値)を変更するには?

XMLファイルに書かれているデータを変更するプログラムを書きたいのですが、何か良い方法はありますか?
言語は問いません、初歩的な質問かもしれませんがお願いします。

以下valueの部分(数値)を、
value='12'からvalue='13'
のように変更したいのですが、便利な関数などあるでしょうか?
<set name='その1' value='12' />
<set name='その2' value='3' />
<set name='その3' value='5' />
<set name='その4' value='10' />

XMLファイルをオープンして読み込んでから、正規表現などでvalueの値を取得、変更し、ファイルを上書きするのではスマートで無い気がしまして。

Aベストアンサー

Option Explicit On
Option Strict On
Option Compare Binary
' Option Infer Off
'http://support.microsoft.com/kb/317069/en-us
Class Q4095116A

Shared Sub Main

'XPathとかDOMとか組み合わせて使えばいいんじゃないの?
'Javaが関心カテゴリに入っている以上細かい解説はしないで大丈夫だと思うけど。(使ったのはVB.NET)

'Instantiate the XPathDocument class.
Dim xmldoc As New System.Xml.XmlDocument()
xmldoc.Load("./Q4095116-1.xml")

'Instantiate the XPathNavigator class.
Dim nav As System.Xml.XPath.XPathNavigator = xmldoc.CreateNavigator()

'Instantiate the XPathIterator class.
'質問文から読み取れなかったが,どっちだろ。
'ルート要素のhoge要素の子要素のset要素で,かつその要素のname属性が'その1'という値を持つとき、そのvalue属性を列挙するイテレータ
Dim iterator As System.Xml.XPath.XPathNodeIterator = nav.Select("/hoge/set[@name='その1']/@value")

'ルート要素のhoge要素の子要素のset要素で,かつ、その要素のvalue属性が12であるとき、そのそのvalue属性を列挙するイテレータ
'Dim iterator As System.Xml.XPath.XPathNodeIterator = nav.Select("/hoge/set[@value='12']/@value")



Do While iterator.MoveNext
iterator.Current.SetValue("13")
Loop
xmldoc.Save("./Q4095116-1.xml")




End Sub
End Class
========xmlファイル(exeと同じディレクトリに配置したQ4095116-1.xml)===========
<?xml version="1.0" encoding="UTF-8"?>
<hoge>
<!-- ルート要素がないとXMLにならないので。また,上位の要素では名前空間が宣言されていないものとする。-->
<set name="その1" value="12" />
<set name="その2" value="3" />
<set name="その3" value="5" />
<set name="その4" value="10" />
</hoge>

Option Explicit On
Option Strict On
Option Compare Binary
' Option Infer Off
'http://support.microsoft.com/kb/317069/en-us
Class Q4095116A

Shared Sub Main

'XPathとかDOMとか組み合わせて使えばいいんじゃないの?
'Javaが関心カテゴリに入っている以上細かい解説はしないで大丈夫だと思うけど。(使ったのはVB.NET)

'Instantiate the XPathDocument class.
Dim xmldoc As New System.Xml.XmlDocument()
xmldoc.Load("./Q4095116-1.xml")

'Instantiate the XPathNavigator class.
D...続きを読む

QC#にて別クラスの関数を使いたい

C#にて、別クラスの関数を使用する方法を教えてほしいです。

下記のような、構造体を受け取るメソッドを作りました。

*****************************
private struct MyPoint
{
public int x;
public int y;
}

private void proc1(MyPoint pt)
{
MessageBox.Show("座標:" ; pt.x + "," + pt.y + "実行結果");
}

private void button1_Click(object sender ,System.EventArgs e)
{

MyPoint pt;
pt.x = 10;
pt.y = 20;
proc(pt);
}
*****************************

別のフォームのクラスから、proc1を呼び出したいのですが、やり方がわかりません。
どうか、教えてください。

Aベストアンサー

同じ定義をしたとしても別の名前空間に書いた構造体は同一とはみなされません。

呼び出し先クラスでの構造体を private では無く、public で宣言して下さい。

呼び出し元では、

MyClass.MyPoint pt;

のようにして実体を作ります。

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む

QXMLからデータを取得

いつもお世話になっております。

XMLファイルに含まれたデータの中から、特定のデータを検索するプログラムを作りたいと思っております。

<AAA Name="テスト">
   <BBB x="2" y="2"></BBB>
   <CCC Num="0001"></CCC>
   <CCC Num="0002"></CCC>
</AAA>
XMLデータの形式は↑みたいな感じで、これが100以上あり、CCCタグは0~5個までです。

フォームにテキストボックスを配置し、そこに検索したい語句を入れ、
AAAタグのNameの中身と合致したら、BBB、CCCの属性をすべて取得して表示するということをしたいのですが、
どうにも上手くいきません。

VB2008を使用しております。
方法をご存知の方、ご教授ください……orz

Aベストアンサー

a_navi.Select("//AAA[@Name='test']")
で AAAタグの検索条件を増やさないのであれば

xml_data = a_navi.Select("//AAA[@Name='test']")
while xml_data.MoveNext
  Dim xmldoc As New Xml.XmlDocument
  ' XMLDocumentに 選択されたCurrentのOuterXmlを与えれば
  ' 自前で XML形式の体裁を整える必要がありません
  xmldoc.loadXML( xml_data.Current.OuterXml)
  ' StringReaderにも OuterXmlで与えます
  a_xml = new Xml.XmlTextReader(New IO.StringReader(xml_data.DocumentElement.OuterXml))
  while a_xml.Read
    If a_xml.NodeType = XmlNodeType.Element Then
      Select Case a_xml.LocalName
        ' AAAタグ用の分岐を定義
        Case "AAA"
          Console.WriteLine("aaa:" & a_xml.GetAttribute("age") & "," & a_xml.GetAttribute("id"))
        Case "BBB"
          Console.WriteLine("bbb:" & a_xml.GetAttribute(0) & "," & a_xml.GetAttribute(1))
        Case "CCC"
          Console.WriteLine("ccc:" & a_xml.GetAttribute(0))
      End Select
    End If
  end while
end while

といった具合でよさそうですよ

a_navi.Select("//AAA[@Name='test']")
で AAAタグの検索条件を増やさないのであれば

xml_data = a_navi.Select("//AAA[@Name='test']")
while xml_data.MoveNext
  Dim xmldoc As New Xml.XmlDocument
  ' XMLDocumentに 選択されたCurrentのOuterXmlを与えれば
  ' 自前で XML形式の体裁を整える必要がありません
  xmldoc.loadXML( xml_data.Current.OuterXml)
  ' StringReaderにも OuterXmlで与えます
  a_xml = new Xml.XmlTextReader(New IO.StringReader(xml_data.DocumentElement...続きを読む

QC#でXMLの読み取り書き取りについて

C#からXMLの読み取りと書き取りについて困っています。

◆開発言語
 C# (Visual Studio 2008)

◆現在の仕様
 1.指定のXMLを読み込みます
   ⇒ テキストストリームを使ってファイルを読み取り
     XMLシリアライズにてクラスにセットしています。
 2.XMLの内容を書き換えます
   ⇒ 指定タグの内容を書き換えます。
 3.XMLを保存します
   ⇒ XMLデシリアライズを用いて
     XMLの内容がセットされているクラスから
     XMLファイルに出力します。
◆問題点
 ここで、「1.指定のXMLを読み込みます」にて
 XML内にあるDOCTYPEや、style-sheet等の情報が
 ごっそりかけてしまっています。
 そのため、「3.XMLを保存します」では
 DOCTYPEや、style-sheet部分がかけています。

◆解決したい方法
 シリアライズなどを用いているとXMLのノードを一つ一つ
 if文で精査する必要がないので、助かっています。
 既存のままで、DOCTYPEや、style-sheetを読み取ち、出力する
 方法は無いのでしょうか?
 ※上記が不可能であれば、その他の方法でも構いません。

C#からXMLの読み取りと書き取りについて困っています。

◆開発言語
 C# (Visual Studio 2008)

◆現在の仕様
 1.指定のXMLを読み込みます
   ⇒ テキストストリームを使ってファイルを読み取り
     XMLシリアライズにてクラスにセットしています。
 2.XMLの内容を書き換えます
   ⇒ 指定タグの内容を書き換えます。
 3.XMLを保存します
   ⇒ XMLデシリアライズを用いて
     XMLの内容がセットされているクラスから
     XMLファイルに出力します。
◆問題点
...続きを読む

Aベストアンサー

シリアライズというのは,あくまでオブジェクトをバイト列に変換するための手法です。
XmlSerializerは,バイト列の表現にXMLを使っているだけです。

XMLの読み込みであれば,本来はXmlDocumentやXPathDocument,XDocumentなどを利用すべきです。

さて,どうしてもシリアライズを使うのであれば,書き込み時に上記のクラスと組み合わせて使うことを考えてみてはどうでしょうか。

手順)
1. オブジェクトをMemoryStreamにXMLシリアライズする [MS]
2. 元のXMLをXmlDocumentに読み込む [XD1]
3. [MS]からXmlDocumentに読み込む [XD2]
4. [XD1]から,ルート要素の内容をすべて削除する
5. [XD2]のルート要素の内容をすべて[XD1]のルート要素の内容としてコピーする
6. [XD1]を保存する

つまり,大枠だけ残して,中身を入れ替えてしまうのです。
ただし,ルート要素の属性にマッピングするプロパティが存在した場合,この方法は使えません (その部分だけを自分でコピーすれば別です)。

シリアライズというのは,あくまでオブジェクトをバイト列に変換するための手法です。
XmlSerializerは,バイト列の表現にXMLを使っているだけです。

XMLの読み込みであれば,本来はXmlDocumentやXPathDocument,XDocumentなどを利用すべきです。

さて,どうしてもシリアライズを使うのであれば,書き込み時に上記のクラスと組み合わせて使うことを考えてみてはどうでしょうか。

手順)
1. オブジェクトをMemoryStreamにXMLシリアライズする [MS]
2. 元のXMLをXmlDocumentに読み込む [XD1]
3. [MS]か...続きを読む

Qsqlplusで表示が変なので、出力を整形したい。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------

上記のように意味不明な形式で出てきます。

例えばこんな風に

select カラム1,カラム2,カラム3 from hoge;

カラム1 1の値
---------------------------
カラム2 2の値
---------------------------
カラム3 3の値

等のように分かりやすく表示できないでしょうか?

ちなみにOracle9iR2を使用しています。
sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。

分かりづらくですいませんが、皆さま、ご教授お願いします。

いつもお世話になっています。

サーバにアクセスしてsqlplusで、
データを調べたいのですが、
出力形式が見づらくて困っています。

よくわからいのですが、
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
---------------------------
1の値 2の値
3の値
---------------------------
カラム名1
---------------------------
カラム名2
---------------------------
カラム名3
-----------------------...続きを読む

Aベストアンサー

SQLPLUSを起動して、

SQL>set linesize 列数

でどうだ。

SQL>show linesize

で確認ができる。

Q“.vbs”のファイルが実行できない

まったく初歩的な質問で申し訳ないのですが、拡張子がvbsのファイルが実行できません。
あるソフトをアンインストールするために実行したいんですが、ダブルクリックするとアプリケーションを選べみたいなのが出てきて、よく分かりません。
一応、そのvbsファイルをNotepadで開いてみたものを載せときます。

----------------------------------------

On Error Resume Next

set shell = CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
bcp="C:\Program Files\BCP"

msg = msgbox("ブラクラでヤバイVer4をアンインストールしますか?",vbYesNo)
if msg=vbNo then WScript.Quit

if fso.FolderExists("C:\Program Files\BCP\")then
fso.DeleteFolder bcp
msgbox "フォルダの削除完了"
end if

shell.RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ブラクラでヤバいでチェック\")
shell.RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ブラクラでヤバいを起動\")

msgbox("アンインストールが完了しました。"&Chr(13)&Chr(13)&"By 禿親父")

----------------------------------------

どなたか分かる方いましたら教えてください。
よろしくお願いします。

まったく初歩的な質問で申し訳ないのですが、拡張子がvbsのファイルが実行できません。
あるソフトをアンインストールするために実行したいんですが、ダブルクリックするとアプリケーションを選べみたいなのが出てきて、よく分かりません。
一応、そのvbsファイルをNotepadで開いてみたものを載せときます。

----------------------------------------

On Error Resume Next

set shell = CreateObject("WScript.Shell")
set fso = CreateObject("Scripting.FileSystemObject")
bcp="C:\Program Files...続きを読む

Aベストアンサー

Windowsには標準でWSHがインストールされており、その環境下ではvbsは普通に実行できるはずなのですがが、WSHを手動で外してしまったのか、それが壊れたのか、はたまた関連付けだけの問題なのかは分かりませんが、とりあえず動かなくなってしまったようですね。

一番手っ取り早そうな解決策としては
参考URLのところからWSHの最新版をダウンロードしてセットアップすることではないかなと。

参考URL:http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=E74494D3-C4E1-4E18-9C6C-0EA28C9A5D9D

Q同じタグ名の項目取得

初めて質問させていただきます。
よろしくお願い致します。

XMLについて勉強を始めたばかりで、基本的な質問です。

<住所録>
<個人>
<住所>東京都</住所>
<氏名>○○</氏名>
</個人>
<個人>
<住所>千葉県</住所>
<氏名>××</氏名>
</個人>
</住所録>

上のように、住所と氏名の個人データが住所録として
登録されているようなXMLでは、タグ名が<個人><住所><氏名>と、同じものになってしまいます。

このようにタグ名が同じXMLファイルにアクセスして「<個人>というタグ名からその配下のNodeListを取得」するようなプログラムを作るとき、(言語はC++でDOMを使用します)

<住所>東京都</住所>
<氏名>○○</氏名>

<住所>千葉県</住所>
<氏名>××</氏名>

と、2つのNodeListを取得するにはどうすればいいのですか?
(この場合、タグ名が同じで、個人情報が2つですが、xmlではこの2つの個人情報の「”氏名○○”のリストのみ取得する」というように、Nodeを判定し条件にあった項目を取得することは可能ですか??)

よろしくお願い致します。

初めて質問させていただきます。
よろしくお願い致します。

XMLについて勉強を始めたばかりで、基本的な質問です。

<住所録>
<個人>
<住所>東京都</住所>
<氏名>○○</氏名>
</個人>
<個人>
<住所>千葉県</住所>
<氏名>××</氏名>
</個人>
</住所録>

上のように、住所と氏名の個人データが住所録として
登録されているようなXMLでは、タグ名が<個人><住所><氏名>と、同じものになってしまいます。

このようにタグ名が同じXMLファイルにアクセスして「<個人>というタグ名からその...続きを読む

Aベストアンサー

「条件付でNodeListは取得できない」ではなく
「NodeListを取得するのに条件を与えられない」です。
こういった処理を望むのであれば、自分で処理を記述しなければならないということです。


childNodesプロパティで得られる情報は、当該ノードの子、全てをコレクションとして含むNodeListということになります。

「”氏名○○”のリストのみ取得する」という処理をしたいのであれば、『childNodesプロパティを使用して<個人>ノードを全て取得した後、さらに<氏名>ノードを取得して判断』という流れになるでのしょう。

この件に関して言えば、ネームスペースは『自分で判断する』必要があります。

QL字みたいな記号の表示

よくメニューリストなんかに使われている記号の表示の仕方が分かりません。教えください。

カテゴリ
    Lその1
    Lその2
      

こんな感じの L の破線になったような記号です。

Aベストアンサー

#2です。

ちょっと見た事ないですね^^;
画像じゃないですか?
その点線の└の上で右クリックして「画像に名前を付けて保存」とあれば画像ですが。

お役に立てませんで…。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング