小编rad*_*er5的帖子

wso2 esb文件处理示例smooks csv解析器第一行包括payload namespace

涉及WSO2 ESB示例http://wso2.org/library/articles/2011/01/wso2-esb-example-file-processing但遇到一个问题,当一个简单的csv文件

name0,value0
name1,value1
name2,value2
name3,value3
Run Code Online (Sandbox Code Playgroud)

使用此配置由smooks解析

<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd" xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.1.xsd">
<csv:reader fields="name,value" />
</smooks-resource-list>
Run Code Online (Sandbox Code Playgroud)

导致很大程度上正确的输出,但第一行包括有效负载命名空间,这是不正确的

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
    <text xmlns="http://ws.apache.org/commons/ns/payload">name0,value0
name1,value1
name2,value2
name3,value3</text>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

所以当读取第一个name0值时,它包括哪个也是不正确的.

Smooks然后将其转换为

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
    <csv-set>
        <csv-record number="1">
            <name>&lt;?xml version='1.0' encoding='utf-8'?>&lt;text xmlns="http://ws.apache.org/commons/ns/payload">name0</name>
            <value>value0</value>
        </csv-record>
        <csv-record number="2">
            <name>name1</name>
            <value>value1</value>
        </csv-record>
        <csv-record number="3">
            <name>name2</name>
            <value>value2</value>
        </csv-record>
        <csv-record number="4">
            <name>name3</name>
            <value>value3&lt;/text></value>
        </csv-record>
    </csv-set>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

那么Smooks正在做所有的问题,因为输入包括最后一个?但是,它理解的元素数量被计为4,所以它不像csv应该有一个标题行.我可以通过包含标题行来解决(在某种程度上),但元素计数不正确.我可以通过在csv的最后一行包含一个回车来解决结束.

我该如何解决这个问题?我在一年前找到另一个线程问同样的问题,但没有答案.

xml csv esb wso2 smooks

5
推荐指数
1
解决办法
1926
查看次数

使用Gremlin - Tinkerpop3获取具有所有属性的顶点标签的地图

我想回复一些类似的东西

{
  "label1" : ["prop1","prop2"],
  "label2" : ["prop3","prop4"],
  "label2" : ["prop1","prop3"]
}
Run Code Online (Sandbox Code Playgroud)

等等,其中标签[N]是顶点标签值,道具数组是这些顶点的属性.

我可以得到一个标签列表,我可以得到一个属性列表,但我不能将它们组合在一个对象中.我可能会做两个查询并最终合并两个数组,但类似于

g.V().valueMap().select(keys).dedup();
Run Code Online (Sandbox Code Playgroud)

只获取有任何属性的属性,所以如果顶点类型没有任何属性,则返回的数组与执行的数组大小不同

g.V().label().dedup();
Run Code Online (Sandbox Code Playgroud)

这是使用gremlin语法(TP3)谢谢

gremlin tinkerpop3

1
推荐指数
1
解决办法
3079
查看次数

标签 统计

csv ×1

esb ×1

gremlin ×1

smooks ×1

tinkerpop3 ×1

wso2 ×1

xml ×1