お世話になります。

下記のようなXMLソースがあります。
下記のXMLソースをMSXML2.DOMDocumentで読み込んだ上で、
情報/大問/@形式="1" の内容の
「<中問><小問>a</小問><小問>b</小問><小問>c</小問></中問>
<中問><小問>あ</小問><小問>い</小問><小問>う</小問></中問>」
だけをタグ付きで取得したいのですが、どのような関数を使えばよいでしょうか?

大問 形式=1以下の内容をタグ付きで取得したいのです。
何卒よろしくお願いします。
XMLソース-----------------------
<情報>
<大問 形式=1>
<中問>
<小問>a</小問>
<小問>b</小問>
<小問>c</小問>
</中問>
<中問>
<小問>あ</小問>
<小問>い</小問>
<小問>う</小問>
</中問>
</大問>
<大問 形式=2>
<中問>
<小問>1</小問>
<小問>2</小問>
<小問>3</小問>
</中問>
<中問>
<小問>A</小問>
<小問>B</小問>
<小問>C</小問>
</中問>
</大問>
</情報>

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

A 回答 (1件)

Microsoft XML v3.0 以上だと、selectNodesメソッドでxpathが使えるようです。


Dim ObjXml As MSXML2.DOMDocument
Set ObjXml = CreateObject("MSXML2.DOMDocument")
ObjXml.Load("​hoge.xml")​
Set nlist = xmldom.selectNodes("//情報/大問/@形式=""1""")
Dim node As MSXML2.IXMLDOMNode
For Each node In nlist
Debug.Print node.nodeName
Debug.Print node.childNodes(0).nodeValue
Next

できるかなああ...
    • good
    • 0
この回答へのお礼

ありがとうございます。
試して見ます。

>>大問 形式=1以下の内容をタグ付きで取得したいのです。
タグ付で取れるかちょっと不安です。。。

お礼日時:2009/05/20 22:45

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

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

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

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

QMicrosoft Office Document Image Writerについて

「Microsoft Office Document Image Writer」が欲しいのですが、Office2003に付属だけでしょうか。「Microsoft Office Document Image Writer」だけ取得できる方法はありますでしょうか。

Aベストアンサー

単体で入手する事はできないようです。コスト的にもっとも安く入手するなら、office製品を単体で購入するのが安そうですが...

単にプリントイメージを保存したいだけであれば、PDFを検討してみてはどうでしょうか?下記のソフトをインストールしておけば同等の事ができるかと。
http://www.forest.impress.co.jp/article/2004/09/02/xelopdf.html
http://www.forest.impress.co.jp/article/2004/03/26/primopdf.html

参考URL:http://office.microsoft.com/ja-jp/assistance/HP011185461041.aspx

Q

の使い方

xhtml+cssをやり始めです。

実は、<br />と<p></p>の使い方についてわかんなくて教えてくださーい。

普通のhtmlでは改行したいときは、<br />を入れまくっていましたが、xhtmlは<br/>ではなく改行は<p></p>でといわれました。

<p>あいうえお</p>
<p>かきくけこ</p>

といれると改行にはなりますが、1行あけたい場合はどうしますか?

<p>あいうえお</p>
<p></p>
<p>かきくけこ</p>

としても1行あきませんよね?
こういう場合は

<p>あいうえお</p>
<br />
<p>かきくけこ</p>

でいいのですかね???

単純な質問ですみません。

Aベストアンサー

基本的に、<p>タグで段落を作るときに、勝手に一行開けてくれると考えていいかと思います。
そして、<br>は行をあけない普通の改行ということになります。

つまり、一行あけるときは
<p>あいうえお</p>
<p>かきくけこ</p>

行をあけないときは
<p>あいうえお<br />
かきくけこ</p>
となります。

*余談ながら、xhtmlでは<body>の直下に普通のテキストを書くことができませんので、文章を書くときはそれを<p>で囲ってやることが必要となります。

QMicrosoft Office Document Image Writer

「プリンタとFAX」の設定で、デフォルトでは「Microsoft Office Document Image Writer」となっていますが、この「Microsoft Office Document Image Writer」は何でしょうか?
また、どういうときに使うのでしょうか?
よろしくお願いします。

Aベストアンサー

WordやExcel、ホームページなどを画像ファイルとして保存できる機能があります。PDFのようなものですが、注釈を入れるなど若干の編集機能もありますね。
http://hamachan4.exblog.jp/5677193/
http://office.microsoft.com/ja-jp/help/HP010771031041.aspx

QXSLTを使用したXML->XML変換で...

XSLTを使用したXMLからXMLへの変換で、やり方が分からないのでどなたかお教え願います。

以下にXMLを記述します。

----[入力側]-----
<INPUT>
<IN1>
<old>100</old>
<new>100</new>
</IN1>
<IN2>
<IN21>
<old>200</old>
<new>200</new>
</IN21>
<IN22>
<old>300</old>
<new>300</new>
</IN22>
</IN2>
</INPUT>

----[出力側]-----
<OUTPUT>
<OUT1>
<OUT11>
<old>100</old>
<new>100</new>
</OUT11>
<OUT12>
<OUT121>
<old>200</old>
<new>200</new>
</OUT121>
<OUT122>
<old>300</old>
<new>300</new>
</OUT122>
</OUT12>
</OUT1>
</OUTPUT>


【質問内容】
 集団項目でないタグ(入力側のIN1およびIN2)を集団項目として出力したい

XSLTを使用したXMLからXMLへの変換で、やり方が分からないのでどなたかお教え願います。

以下にXMLを記述します。

----[入力側]-----
<INPUT>
<IN1>
<old>100</old>
<new>100</new>
</IN1>
<IN2>
<IN21>
<old>200</old>
<new>200</new>
</IN21>
<IN22>
<old>300</old>
<new>300</new>
</IN22>
</IN2>
</INPUT>

----[出力側]-----
<OUTPUT>
<OUT1>
<OUT11>
<old>100</old>
<new>100</new>
</OUT11>...続きを読む

Aベストアンサー

> 入力側のIN1,IN2が複数回繰り返された場合、
> 出力側もOUT1が複数回繰り返されるって感じです。

IN1とIN2が必ず1対1に対応するという条件でいいなら(複数の組が存在しても可)これでいけるでしょう。



IN1およびIN2以下の構造はオリジナルのまま出力されます。

<xsl:template match="INPUT">
 <OUTPUT>
  <xsl:apply-templates />
 </OUTPUT>
</xsl:template>
<xsl:template match="IN1">
 <xsl:text disable-output-escaping="yes">&lt;OUT&gt;</xsl:text>
  <xsl:copy-of select="." />
</xsl:template>
<xsl:template match="IN2">
 <xsl:copy-of select="." />
 <xsl:text disable-output-escaping="yes">&lt;/OUT&gt;</xsl:text>
</xsl:template>

> 入力側のIN1,IN2が複数回繰り返された場合、
> 出力側もOUT1が複数回繰り返されるって感じです。

IN1とIN2が必ず1対1に対応するという条件でいいなら(複数の組が存在しても可)これでいけるでしょう。



IN1およびIN2以下の構造はオリジナルのまま出力されます。

<xsl:template match="INPUT">
 <OUTPUT>
  <xsl:apply-templates />
 </OUTPUT>
</xsl:template>
<xsl:template match="IN1">
 <xsl:text disable-output-escaping="yes">&lt;OUT&gt;</xsl:text>
  <xsl:copy-of sele...続きを読む

QMicrosoft Office Document Image Writerについて

Microsoft Office Document Image Writerで印刷ボタンを押すと、画面印刷されるわけではないのですか?

Aベストアンサー

紙に印刷するそのままを画像イメージにして、TIFF (Tagged Image File Format) または MDI (Microsoft Document Imaging Format) ファイル
として、ハードディスクや、CD、DVDに保存します。(紙に印刷せずに画像イメージファイルにして配布できます。)
下記に詳しい説明があります。
http://office.microsoft.com/ja-jp/help/HP010771031041.aspx

Qxmlから吐き出したhtmlデータのソースインデントがきかない

xmlとxsltを使って、htmlを吐き出しているのですが、
<xsl:output indent="yes"/>
indent="yes"を入れてもindentされません。

xsltは下記になります。
<?xml version="1.0" encoding="shift_jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="id" />
<xsl:output
method="xml"
standalone="yes"
encoding="Shift_JIS"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="yes"
/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>KDS</title>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<link rel="stylesheet" href="/css/style.css" type="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript" src="/js/snavi_case.js"><xsl:comment>//</xsl:comment></script>
</head>
<body>
<xsl:apply-templates select="info/group/page[@fileId='pteach' and @fileId = $id]" mode="main"/>
</body>
</html>
</xsl:template>
<xsl:template match="info/group/page" mode="main">
<xsl:value-of select="title"/>
<table width="539" border="1">
<xsl:apply-templates select="teacher[position() mod 3 = 1]"/>
</table>
</xsl:template>
<xsl:template match="teacher">
<tr>
<td><xsl:value-of select="name"/>:<xsl:value-of select="subject"/></td>
<td><xsl:value-of select="following-sibling::teacher[1]/name"/>:<xsl:value-of select="following-sibling::teacher[1]/subject"/></td>
<td><xsl:value-of select="following-sibling::teacher[2]/name"/>:<xsl:value-of select="following-sibling::teacher[2]/subject"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>

ただ、<html>~<body>と</body>~</html>はしっかりとソースがインデントされるのですが、<xsl:apply-templates select="info/group/page[@fileId='pteach' and @fileId = $id]" mode="main"/>で読み込んだところ以降のindentが全くきいていないようです。
こんな感じになります。
<html>
<title></title>
<body>#ここまではindentは正常
<table><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr><tr><td></td></tr></table>
#indentが効いていない!
</body>
</html>

どなたか同じような状況になられた方、
いらっしゃいませんでしょうか。

xmlとxsltを使って、htmlを吐き出しているのですが、
<xsl:output indent="yes"/>
indent="yes"を入れてもindentされません。

xsltは下記になります。
<?xml version="1.0" encoding="shift_jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="id" />
<xsl:output
method="xml"
standalone="yes"
encoding="Shift_JIS"
omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w...続きを読む

Aベストアンサー

#2については自己解決しました。後は質問者様の補足待ちです$Idの件も聞きたいし

[XML]
<title>
</title>
<!-- ここに文字列を入れました-->
[XSLT]
<xsl:template match="info/group/page" mode="main">
<xsl:value-of select="title"/> <!-- これのせいだったようです。ここをコメントアウトしたら解決しました。また、p要素等として括ってあげてもうまくいくことを確認しました -->

#2のソース、Gooの仕様上,数値文字参照に変換されちゃってますが,
XSLTをどうなおせばいいかは質問者様なら想像つきますよね

Qmicrosoft office document image writer

現在osはxpを使用しています。
OfficeはPersonalEdition2003を使用しているのですが、なぜかいつからかMicrosoft office document image writerがなくなってしまいました。以前からなかったのかも。手元にOfficeのインストールCDとOffice HomeStyle+というのがあります。image writerをインストールするためにはどのCDをインストールするのでしょうか?また、ネットからダウンロードできるのでしょうか。宜しくお願いします。

Aベストアンサー

参考にして、試してください
http://blog.vichou.net/?eid=272437

Qxmlとjavaで自動的にWEBが更新されるソースを作ろうと思っています

はじめまして。お忙しいところ申し訳ございませんがお力をお貸しいただきますようお願いいたします。
今度xmlで時間やwebサイトのURLなどを定義しておき、
時間がきたら自動的にページを開いていくプログラムを作ろうとしています。
具体的には
<diary>20050613</diary> 日時が2005年6月13日
<time>231530</time> 時間が23時15分30秒に
<web>http://www.goo.ne.jp</web> gooを開く

というように記述していこうと考えています。
このようなxmlファイルをサーバで配布し、クライアント側で実行できるようなプログラムを作ってみたいと考えているのですが実際にどのような技術を使っていけば良いのか分かりません。自分でも調べてはいっているのですが、なかなかXMLの基礎知識も乏しいため前に進みません。
他のプログラミングはjavaが多少できるのでjavaとxmlを使って作れればと思っています。
何かヒントでも結構ですのでアドバイスお願いいたします。

Aベストアンサー

具体的に質問を絞り込まないと回答は難しいですね。
・サーバーでXMLファイルを配布する方法
・クライアントプログラムがXML文書を読み取る方法
・指定日時にプログラムを実行する方法
・Webサイトを開く方法

など複数の質問が出てくるので絞り込んではいかがですか?
考えられているプログラムはJava + XMLでなくても実現できます。

QXPS Document Writerについて

OS:WinXP Pro Offece:2010 です

XPS Document Writer のドライバを削除してしまいました。
再インストールの方法を教えてください。

●当方で試した再インストール方法●
1.XPS Essentials Pack 及び
  Microsoft Core XMLServices 6.0 をインストール
2.C:\Windows\inf を開き、INFCACHE.1を削除
3.PC再起動
4.プリンタ追加ウィザードからローカルプリンタ選択、
  既存のポート(XPSPort)を選択

  その後、プリンタのメーカー一覧にMicrosoftすら
  出てきません。

説明不足の部分は補足します。
よろしくお願いします。

Aベストアンサー

No.1です。

> 記事内のインストール手順
> >(6)中央左に[製造元]欄が表示されたら、[Microsoft]を選択するとありますが、Microsoftが表示されません。

そうですか。それでは、考え方を変更して、
「XPS Document Writer」には「.NET Framework 3.0」がインストールされていることが必須要件なので、「.NET Framework 3.0」をアンインストロールの上、再インストールして、改めて「XPS Essentials Pack 及び Microsoft Core XMLServices 6.0」他をインストールしては如何でしょう?

「.NET Framework 3.0環境構築」
http://msdn.microsoft.com/ja-jp/library/cc825663.aspx

Qエクセルのxml形式の詳細について

エクセルではxml形式でデータを保存できるようですが、このxml形式について詳しく定義されているページを教えてください。

例えば、
>Style ss:ID="Default" ss:Name="Normal"
↑のようにやたら「ss」という文字が見れるのですが、これはなんでしょうか?

また、下記のように数字をセルに入れる場合は
「Number」を指定するようですが、まとめて定義されているページがあれば教えていただきたいです。
>Data ss:Type="Number"

*次のofficeからxmlが標準的な保存形式になるようですが、既存のoffice 2002とかでも読めるxmlを使いたく思います。
が、上記のような保存形式は次世代officeでも読めるんでしょうか?詳しい方、教えていただけると幸いです。

Aベストアンサー

あまり詳しくないので、一部だけ

>「ss」という文字が見れるのですが、これはなんでしょうか?
最初の方に
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
とあると思いますけど
これは、XMLの文法的には、名前空間の指定というやつで、
同じような名前、例えばIDとか、が使われる時
ss:ID の様に修飾して、区別するためのものです。

>上記のような保存形式は次世代officeでも読めるんでしょうか?
XMLのテキストで構成されていて、バージョン情報も埋め込まれていますから、余程大きな変更が無い限り読み込めると思います。


人気Q&Aランキング

おすすめ情報