ColdFusion XML Document返回类型

Ale*_*exP 1 coldfusion coldfusion-9

我创建了一个抽象的file parsercfc.听起来,这会抽象出从文件系统中读取文件时所需的一些常见任务.

所述组件的一个子节点用于解析XML文件并返回coldfusion XML文档.现在这一切都很完美,但是,我无法弄清楚的一件事是如何明确定义xml文档的返回类型,这是我强烈要强制执行的.

负责返回XML文档的方法如下:

public coldfusion.xml.XmlNodeList function parse(string filePath = "", boolean isCaseSensitive = false, string validator = "")
{
  super.parse(arguments.filePath);
  var data = getData();
  if (len(arguments.validator)) {
    setDocument(xmlParse(data, arguments.isCaseSensitive, arguments.validator));
  } else {
    setDocument(xmlParse(data, arguments.isCaseSensitive));
  }
  return getDocument();
}
Run Code Online (Sandbox Code Playgroud)

您可以看到返回类型是coldfusion.xml.XmlNodeList.我已经设法通过使用以下客户端代码弄清楚.

<cfscript>

  factory = new Library.parser.Factory();
  parser  = factory.getParser("XmlFileParser");
  xmlDoc  = parser.parse("/var/www/development/Framework/test/testfile.xml");

  /** XMLDoc is now a coldfusion document object **/

  writeDump(xmlDoc);
  writeDump(getMetadata(xmlDoc).getName()); /** outputs coldfusion.xml.XmlNodeList **/

</cfscript>
Run Code Online (Sandbox Code Playgroud)

这是不正确的,我得到的错误是:

The value returned from the parse function is not of type coldfusion.xml.XmlNodeList.

我错过了一些非常简单的事吗?我应该这么关心吗?

编辑:

添加了getDocument方法(正如您所看到的那样,返回类型为"any")

public any function getDocument()
{
  return variables.document;
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*ron 6

是的.根据文档,您想要XML的返回类型是......错误的......"XML".