-2

以下の特定の xml サンプルで作成者名を取得し、eq="yes" の属性を設定する方法について質問したかっただけです。EQとは、平等な貢献者を意味します。

これが XML です。

<ArticleFootnote Type="Misc">
<Para>John Doe and Jane Doe are equal contributors.</Para>
</ArticleFootnote>

これは、他の形式の XML での出力である必要があります。

<AuthorGroups>
<Authors eq="yes">John Doe</Authors>
<Authors eq="yes">Jane Doe</Authors>
</AuthorGroups>

JOhn Doe と Jane Doe が作成者のリストで既に定義されていると仮定しますが、変換後、作成者タグには属性 eq="yes" が必要です。xlstの書き方がよくわからないので教えてください。

前もって感謝します。

4

1 に答える 1

0

ここには、明確な答えを与えるのに十分な情報がありません。

著者のリストがある場合は、パターン内のスペースを\ s +に変更した後など、各著者の名前にfn:match()を順番に使用できます。

私は通常、Perlを使用してこの種のことを行いますが、タグ付けの構造を乱さないように注意してください。

いずれの場合も、テキストを一度に1単語ずつ処理する必要があります。おそらく、ある名前が「John」で、別の名前が「John Doe」の場合、最も長い一致を再帰的に見つける必要があります。すでに処理した名前にマークアップを追加しないように注意してください。

テキストが実際にそこにあるものを正確に示しているが、名前が異なる場合は、ArticleFootnote / Para [contains(。、'are equal contrubutors')]に一致するテンプレートを作成し、substring()を使用することができます。およびsubstring-before()またはXSLT2パターンマッチング。

于 2012-09-07T02:12:11.987 に答える