我遇到了一个有趣的案例-我的Solr索引基于包含另一个数组中的数组的表。
现在我需要以XML格式从索引提取数据。
当您从数组中选择数据时,XML没有问题,但是当您在第一个数组中获取另一个数组时,XML结果将无效。
有简单数组的结构:
orgdata array <struct <fs_form_num:string, fs_unit:string, fs_value:string>>
查询结果变成具有有效结构的漂亮XML:
<str name="orgdata">
<item fs_form_num="2" fs_unit="lb" fs_value="100"/>
还有我当前的问题(简化):
orgdata array <struct< fs_form_num:string, formdata:array<struct<fs_unit:string>>>>
在这种情况下,结果XML的格式也不正确:
<str name="orgdata"> <item fs_form_num="2" formdata="<item fs_unit="lb" fs_value="100"/>" />
如您所见,
<str name="orgdata"> <item fs_form_num="2" formdata="<item fs_unit="lb" fs_value="100"/>" />
不是有效的XML结构。
我是在做错什么,还是它(Solr)符合预期,我必须手动将嵌套的项目结构转换为正确的内容(通过XSL或Apache Camel)?
编辑:
我指出了我的问题-我无法适当地解决这个问题-
<str name="orgdata"><item fs_form_num="2" formdata="<item fs_unit="lb" /><item fs_unit="ton" />" /></str>
因为我不知道如何在不转义第二个数组的情况下对第一个数组进行转义,就像这样:
<str name="orgdata"><item fs_form_num="2" formdata="<item fs_unit="lb" /><item fs_unit="ton" />"/></str>