-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

这里没有足够的信息给你一个明确的答案。

如果你有一个作者列表,你可以在每个作者的名字上依次使用 fn:match(),也许在模式中将空格更改为 \s+ 之后。

不过,我通常使用 Perl 来做这类事情,但要小心不要破坏标记结构。

在任何情况下,您都需要一次处理一个单词,在一个名字只是“John”而另一个名字是“John Doe”的情况下,可能会递归地找到最长的匹配项。请注意不要将标记添加到已处理的名称中。

如果文本确实总是准确地说明您在那里的内容,但名称不同,您可以有一个模板来匹配 ArticleFootnote/Para[contains(., 'are equal contrubutors')] 并使用 substring()和 substring-before() 或 XSLT 2 模式匹配。

于 2012-09-07T02:12:11.987 回答