Doxygenで生成したxmlデータをWordprocessingML対応データに変換したいのですが、Doxygenで生成したxmlデータには、不要な要素が多数含まれており、それを無視してxslで変換した場合、テンプレートが無い要素はそのままコピーされて困っています。
出力例
test.c
struct_test
<w:p xmlns:w="http://schemas.microsoft.com/office/word/2003/wo …マクロ定義</w:t></w:r></w:p><w:p xmlns:w="http://schemas.microsoft.com/office/word/2003/wo … </w:t><w:t>mmm</w:t><w:t>
</w:t><w:t>ソースファイル テスト </w:t></w:r></w:p>
タグで囲まれていない箇所が問題の箇所。
ひとつのやり方として
<xsl:template match="compoundname"/>
のようにして、無視したい要素をスキップすることは知っていますが、数が多くて対応しきれません。これ以外の方法で、指定した要素以外を全て無視する方法は無いでしょうか?よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ごめん,いちいちリストアップする方法しか思いつかない。
===以下,単なる独り言。(本来は回答とするつもりであったが,エラーらしいのでorz)=============
最初出来ると思ってた。XMLマスターBasic試験で,
マッチするテンプレートが複数ある場合の処理が出たような気がするけどな…。
http://www.w3.org/TR/xslt#conflict
It is possible for a source node to match more than one template rule. The template rule to be used is determined as follows:
ソースノードに対してマッチするテンプレートルールが二つ以上存在する事がある。どのテンプレートルールが使われるかは以下によって決定される。
It is an error if this leaves more than one matching template rule.
(上記の手段により,マッチするものとして)二つ以上のテンプレートが残った場合,エラーである。
An XSLT processor may signal the error;
XSLTプロセッサはエラーを通知する事がある。
if it does not signal the error, it must recover by choosing,
もし,エラーを通知しない場合,XSLTプロセッサは
from amongst the matching template rules that are left, the one
残ったテンプレートルールの中で,
that occurs last in the stylesheet.
スタイルシート中一番最後に登場するものを使わなければならない。
=====================================
…手元のいくつかの実装はエラーを通知しないようで,
一番最後のテンプレートルールが選ばれる
じゃあ,今までのテンプレートルールの前に
<xsl:template match="*" />
とか書いて置けば,今までテンプレートルールで定義されていた奴はそっちが使われ,残りの要素はこのテンプレートルールに引っかかって何もしなくなるんじゃないか?
====
…と、思ったんだけどねぇ。
ちなみに,マッチするテンプレートルールが無いときはビルトインテンプレートが適用されるよ。
http://www.w3.org/TR/xslt#built-in-rule
この回答への補足
いろいろ丁寧にありがとうございます。
自分も
><xsl:template match="*" />
>とか書いて置けば,今までテンプレートルールで定義されていた奴は>そっちが使われ,残りの要素はこのテンプレートルールに引っかかっ>て何もしなくなるんじゃないか?
と思い
<xsl:template match="/" priority="1">
<w:document>
<w:body>
<xsl:apply-templates/>
</w:body>
</w:document>
</xsl:template>
<xsl:template match="sectiondef" priority="1" >
<xsl:choose>
<xsl:when test="./@kind='define'">
<w:p>
<w:r>
<w:t>マクロ定義</w:t>
</w:r>
</w:p>
<w:p>
<w:r>
<w:t>#define </w:t>
<w:t><xsl:value-of select="memberdef/name"/></w:t>
<w:t><xsl:value-of select="memberdef/briefdescription"/></w:t>
<w:t><xsl:value-of select="memberdef/detaileddescription/para"/></w:t>
</w:r>
</w:p>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="*|/" priority="0" />
のように記述したのですが、結果
<?xml version="1.0" encoding="UTF-16"?><w:document xmlns:w=http~><w:body></w:body></w:document>
で出力されました。
何かいい方法があればいいのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) LibreOfficeで数年保存しているデータの変更作業 4 2022/07/08 17:15
- その他(プログラミング・Web制作) pythonにおける単方向リストの実装について 4 2022/07/13 12:34
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- HTML・CSS 疑似要素で背景画像に指定したSVG画像の色変更 2 2023/01/30 22:45
- 法学 法学の問題についてさっぱり分からないので○✕で教えてください 2 2022/10/23 01:05
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Listからのnull要素を削除方法は?
-
getElementsByNameの要素数が取...
-
CPUの考え方を教えてください ...
-
XMLで要素が記述された順番に意...
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
あせんうぶり言語
-
XSLで、XMLの空タグを制御したい。
-
VB6でXMLを作成しているのです...
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
HTTPステータス 404 - There is...
-
コンテキストメニュークリック...
-
ノードの並び替え
-
ルート要素ノードが2個ある場合?
-
ノードとは
-
このエラー、何とかなりません...
-
html→xmlの変換
-
xmlファイルが上手にHTMLに変換...
-
Excel-VBAでXMLの複数ノードの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大規模行列の計算
-
XML:連番要素の全ての子要素にx...
-
MFCでのタブコントロールに...
-
フロートってなに?
-
element of surprise
-
hana no namae osiete kudasai.
-
VB2005でXMLデータから複数ある...
-
svgをhtmlに埋め込んで使いたい
-
getElementsByNameの要素数が取...
-
動的にメモリを確保した配列の...
-
Webページに関するさまざまな情...
-
cssで外部ファイルを読み込む
-
Listからのnull要素を削除方法は?
-
ASP.NETでツリービューを作成し...
-
HPビルダー2001で選んで流す。
-
どうあがいてもIE6のエンコード...
-
XMLはなぜ普及したのか?
-
XSLTの記述方法
-
HTMLでol、liで作成した長...
-
2つの行動の違い
おすすめ情報