node-soap:“第一个标记之前的非空白”。
我的WSDL是有效的,但是这个错误(在title中)发生在soap.createClient
。 WSDL托pipe在服务器上。 在检查node-soap源码之后,看起来好像我是否可以禁用WSDL类中的“strict”标志,这个错误不会发生,但是我似乎无法弄清楚如何禁用它。 我尝试将选项传递给createClient方法,如下所示:
soap.createClient(wsdl, { strict: false }, callback);
但是这似乎并没有解决这个问题。 不幸的是,我不能共享WSDL,但是可以确定它通过了validation,并且在开始标记之前没有“非空白”。 我相当肯定,如果我可以以某种方式禁用wsdl类中的严格选项,可以解决问题。 有没有人有过这种情况发生过?
简短的答案是否定的,目前的代码库似乎是不可能的。 我会build议打开拉请求来添加你需要的function。
你soap.createClient
的代码soap.createClient
最终使用了wsdl.js
文件,当它parsingwsdl时,它将以_parse
函数_parse
。 这个函数创buildsaxparsing器,但是严格模式( 代码链接 )的硬编码传递为true
:
p = sax.parser(true),
soap模块依赖于sax模块,它接受一个布尔值来确定是否应该启用严格模式( 链接到代码 ):
sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
因此,传递给createClient
的选项不会用于创buildsaxparsing器,而是将其设置为严格模式。 然而,正如我上面所说的,一个拉请求可以解决这个问题,因为它看起来像选项一直传递到创buildWSDL对象,所以这只是一个创buildsaxparsing器的问题,通过该选项,而不是true
。
(请记住,代码另外在另一个函数xmlToObject
( 链接到源代码 )内创build一个saxparsing器,但是在这里再次硬编码严格模式)
- 传入的参数必须是一个12字节的单个string
- 将coffeescript合并到你的节点项目中?
- javascript正则expression式忽略chokidar的子目录
- MongoDB和Node.js中的dynamic查询
- 在Eclipse中构buildNodeJs应用程序
- 如何在Node.js / Express中redirect(301)?
- nodejs错误:spawn ENOENT
- 为什么node.js中的console.log在util.inspect中没有正确地打印数组
- Node.js process.stdin问题typescript(tty.ReadStream vs ReadableStream)