Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Birt:Webservice返回xml字符串..如何映射到列?_Xml_Web Services_Birt - Fatal编程技术网

Birt:Webservice返回xml字符串..如何映射到列?

Birt:Webservice返回xml字符串..如何映射到列?,xml,web-services,birt,Xml,Web Services,Birt,我正在使用wsdl/webservice url连接到数据源。问题是这个Web服务返回一个xml字符串作为输出。现在我的问题是,我无法将其映射到正确的字段/列。下面是返回的xml字符串示例 <?xml version="1.0" encoding="utf-8"?> <response><items><item><nv_id>1</nv_id><nv_id_parent>0</nv_id_parent>

我正在使用wsdl/webservice url连接到数据源。问题是这个Web服务返回一个xml字符串作为输出。现在我的问题是,我无法将其映射到正确的字段/列。下面是返回的xml字符串示例

<?xml version="1.0" encoding="utf-8"?>
<response><items><item><nv_id>1</nv_id><nv_id_parent>0</nv_id_parent><nv_label>Satisfactory</nv_label></item><item><nv_id>2</nv_id><nv_id_parent>1</nv_id_parent><nv_label>Niveau admin</nv_label></item><item><nv_id>3</nv_id><nv_id_parent>2</nv_id_parent><nv_label>Enseigne</nv_label></item><item><nv_id>4</nv_id><nv_id_parent>3</nv_id_parent><nv_label>Magasin</nv_label></item></items></response>
现在的问题是xml以单行字符串的形式返回。xml字符串包含很多行,我想为列获取所有这些行。我该怎么做


注:我对javascript、java、pojo或脚本化数据源不是很在行,所以如果您的解决方案将使用其中任何一种,请提供更多细节。如果您使用BIRT Designer来设计数据源连接,请首先使用类似端点的WSDL数据源

然后创建要从数据源检索和构造的数据集。使用数据集向导将XML架构映射到列


然后,您可以打开报告的XML以提取格式,或者立即开始从数据生成报告。您可以设置许多值来检索所需的内容。

谢谢您的回复。问题是xml是作为字符串从数据集中返回的。例如,看看和。我的问题是,行作为xml字符串返回后,如何将其解析为行和列基本上soap请求返回一个xml字符串。现在的问题是将返回的xml转换为行和列。您是否考虑过尝试将其设置为XML数据源?但是响应是作为调用wsdl的结果返回的。我试着将返回的xml字符串复制到一个文件中,并将其用作数据源,效果良好。现在的问题是,每次根据参数等生成不同的xml时,我都希望动态解析此xml,而不是将其作为硬编码的xml文件。啊,我没有意识到xml数据结构是动态变化的。如果列名和布局将定期更改,则在不使用多个数据源配置的情况下,可能很难对其进行报告。WSDL可访问的数据源没有使用正确格式的XML响应,这有什么原因吗?我的意思是,如果WSDL客户机(BIRT)无法将数据读取到WSDL请求中,那么听起来好像在数据级别存在问题。您是否尝试过对其他WSDL客户机(如SOAPUI)进行类似的查询?
importPackage(Packages.org.apache.xerces.parsers);
importPackage(Packages.org.xml.sax);
importPackage(Packages.java.io);

var parser = new DOMParser();
parser.parse(new InputSource(new StringReader(dataSetRow["return"])));
var nodelist = parser.getDocument().getElementsByTagName('nv_label');
var entry = nodelist.item(0).getFirstChild().getNodeValue();

entry;