我拥有许多科学出版物的XML数据,并且试图解析KNIME中的数据以提取所需的字段。这是一个示例:https : //eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pmc&id=PMC4400176
为了提取作者的姓名,我使用以下XPath查询: /pmc-articleset/article/front/article-meta/contrib-group/contrib[@contrib-type="author"]
但是,这返回:
BorisovaSvetlana A., KimHak Joong, PuXiaotao, LiuHung-wen*
我希望姓氏和名字之间用分隔符,逗号/空格隔开,而不同的作者姓名之间用分号隔开。这可能吗?还是有比我目前正在做的更好的方法来提取信息,这将使我获得理想的输出结果:
Borisova, Svetlana A.; Kim, Hak Joong; Pu, Xiaotao; Liu, Hung-wen*
[编辑]
当前的KNIME工作流程:
样品电流输出:
我尝试将所有出版物的所有作者姓名输出到收集单元中。(如果我将所有名称输出到多列中,那么最终会创建数百个包含缺失值的列。我什至尝试使用多个字符串操作来实现理想的输出,但是由于某些原因,它仍然不够完美作者名称具有多个名称,带连字符的名称或包含特殊字符的名称。)收集单元将所有作者名称与每个作者名称之间的逗号分隔符组合在一起,但将姓氏和给定名称组合在一起。我还可以对它们进行相同的上述字符串操作,但仍然遇到与上述相同的问题。
如果我将作者姓名分成多行,则会为每篇文章创建多行,因此我不确定该如何达到每篇文章的最终目标。
最终目标:
任何与作者解决此问题的想法将不胜感激!
我有一个姓氏和名字同时出现的名字列表:
BorisovaSvetlana A.; KimHak Joong; PuXiaotao; LiuHung-wen*
Run Code Online (Sandbox Code Playgroud)
我想在姓和名之间添加一个逗号和空格,以使输出为:
Borisova, Svetlana A.; Kim, Hak Joong; Pu, Xiaotao; Liu, Hung-wen*
Run Code Online (Sandbox Code Playgroud)
我在KNIME中使用一个String Manipulation节点,并且我想regexReplace($col1$, ,"")会使用它,也许使用[az]和[AZ]进行某种先行查找以直接在大写字母后写一个小写字母,但是我对regex不熟悉到目前为止,这就是我所拥有的。
我该如何解决这个问题?