0

我在 Rapidminer 中使用 Read XML 来读取文件并提取一些节点。

我的问题是,每当一个节点在 XML 文件中出现不止一次时,Rapidminer 就会提取所有节点值并构建一个字符串,值之间没有空格。相反,我想要一个逗号分隔的字符串。

所以对于 XPath 属性:

//nounPhrase/node()

和 XML 代码:

<extractedData>
<nounPhrase occurrence="1" origin="syllabs">homme blanc</nounPhrase>
<nounPhrase occurrence="1" origin="syllabs">peine</nounPhrase>
<nounPhrase occurrence="2" origin="syllabs">religieuse</nounPhrase>
<nounPhrase occurrence="1" origin="syllabs">peur</nounPhrase>
</extractedData>

Rapidminer 提取此字符串:

homme blancpeinereligieusepeur

虽然我想要的是:

homme blanc, peine, religeuse, peur

有谁知道该怎么做?我在 Read XML 中看不到任何控制提取这方面的选项。

我用于读取 XML 的配置:

检查的xpath:/

属性的xpath:几个,其中 //nounPhrase/node()

4

2 回答 2

0

您可以将 Generate Extract 运算符与前面给出的 concat Xpath 示例一起使用。您需要先阅读完整的 XML 而不进行任何解析,因此这可能不适合您的特定要求。

于 2013-11-02T21:29:47.853 回答
0

如果 RapidMinor 支持 XPath 2.0:

string-join(//nounPhrase, ', ')

如果 RapidMinor 仅支持 XPath 1.0,而您只有 4 nounPhrases

concat(//nounPhrase[1], ', ', //nounPhrase[2], ', ', //nounPhrase[3], ', ', //nounPhrase[4])

如果 RapidMinor 仅支持 XPath 1.0,并且您有不同数量的nounPhrases,则必须在 XPath 之外进行字符串连接。

于 2013-10-31T11:52:25.013 回答