0

私は次のxmlを持っています:

<article article-type="research-article">
<body>
<graphic xlink:href="zee9991370930006.g.eps"/>
<self-uri xlink:title="pdf" xlink:href="zee00813002857.pdf" />
</body>
</article>

これを次のように変換する必要があります。

<article article-type="research-article" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML">
<body>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="zee9991370930006.g.eps"/>
<self-uri xlink:title="pdf" xlink:href="zee00813002857.pdf" xmlns:xlink="http://www.w3.org/1999/xlink"/>
</body>
</article>

名前空間属性が必要な各要素に対して、XSLT 2.0 で次のコマンドを使用しました。

<xsl:namespace name="xlink" select="'http://www.w3.org/1999/xlink'"/>
<xsl:namespace name="mml" select="'http://www.w3.org/1998/Math/MathML'"/>

しかし、問題は、1 つの要素のみの名前空間属性を取得していることですarticle。xslt の冒頭でも名前空間を宣言しました。正確な問題が何であるかを理解できません。どんな種類の助けも本当に感謝しています。ありがとう。

4

1 に答える 1

0

XML ジェネレーターは、あなたが望むことを行うことは想定されていません。仕様に従って XML を生成します。それらを使用しているすべての要素で同じ名前空間を定義することはお勧めしません! これにより、冗長で、醜く、奇妙な方法で tings を実行できます。

名前空間が最上位 (ルート要素) でのみ定義されている場合の問題は何ですか? 必要な要素でのみ使用できます。単純。

OPのコメント:ルートで必要であり、宣言しました。しかし、その下のノード、つまり私の場合はグラフィックとセルフURIでは使用できません)。xml が整形式かどうかを確認しましたか? ここに投稿するものが完全な xml である場合、グラフィックとセルフ URI には常に利用可能な名前空間が必要です。上記の理由により、次の出力を目指す必要があります。

<article article-type="research-article" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML">
  <body>
    <graphic xlink:href="zee9991370930006.g.eps"/>
    <self-uri xlink:title="pdf" xlink:href="zee00813002857.pdf"/>
  </body>
</article>
于 2013-10-04T07:21:47.340 に答える