1

我正在尝试使用 Quartz Composer 创建一个持续集成构建散热器。

我整理了一个简单的 XML 文件来描述这些项目以及每个工作流程的最新成功:

<projects>
  <project>
    <title>Project A</title>
    <workflows>
      <workflow>
        <title>Build 1.0</title>
        <status>success</status>
      </workflow>
      <workflow>
        <title>Build 2.0</title>
        <status>success</status>
      </workflow>
    </workflows>
  </project>
  <project>
    <title>Project B</title>
    <workflows>
      <workflow>
        <title>Build 1.0</title>
        <status>success</status>
      </workflow>
    </workflows>
  </project>
</projects>

这显然会有更多信息,但我只是想让基础知识暂时起作用。我设置了一个组合,并使用 XML Downloader 从文件系统加载上述 XML 文件。

因此,我遇到的问题是:当我在具有多个子元素的元素上使用 Structure Key Member 补丁时,我会返回多个子元素,但是当我在只有一个子元素的元素上使用 Structure Key Member 时,我会返回单个子元素1 项的集合。

我在示例组合中说明了以下问题:

石英成分

难道我做错了什么?这是预期的行为吗?为什么下链不也返回 QCStructure?

4

1 回答 1

2

不幸的是,XML Downloader补丁不能正确处理多个相邻的空元素。

一种可能的解决方法可能是重组您的 XML 以删除“项目”组,并让“项目”成为每个“工作流程”的属性:

<workflows>
  <workflow project="Project A">
    <title>Build 1.0</title>
    <status>success</status>
  </workflow>
  <workflow project="Project A">
    <title>Build 2.0</title>
    <status>success</status>
  </workflow>
  <workflow project="Project B">
    <title>Build 1.0</title>
    <status>success</status>
  </workflow>
</workflows>

这会产生一个具有可用结果的结构。

(当XML Downloader从 XML 构建结构时,属性等同于子标签,因此“项目”可以是其中之一,并且您会得到相同的结果。)

于 2009-11-11T19:56:26.230 回答