微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – XPath和Jenkins Plot插件

我正在尝试使用Jenkins的Plot插件生成我们的代码中有多少“Todo标记的图表.

我有一个XML文件作为构建的一部分生成,其中包含有关它们的数据(以及其他内容):每个Todo标记在XML中都有一行,如下所示:

<tag line="3" name="todo" description="Do something with this"/>

使用独立的xpath工具,我可以使用表达式// [tag [‘name =’todo’]来获取所有匹配元素,或者使用count(// tag [@ name =’todo’])来获取他们的数量.

此计数是我想要绘制的值.但是我无法在Jenkins的图表上获得任何数据.

我创建了绘图并指定它是一个XML文件. Jenkins然后问我结果是Nodeset,Node,String,Boolean还是Number.

我假设“Nodeset”适用于//标签[@ name =’todo’]和“Number”来计数(// tag [@ name =’todo’]).但是我已经尝试了它们两个,它们都只给我一个空图,没有绘制数据.

最令人沮丧的是Jenkins没有给我任何关于问题的反馈意见;只是空图.构建日志中没有任何内容,或者我可以看到的任何其他内容.

任何人都可以帮我搞定这个吗?我在任何地方都找不到任何例子.它似乎应该很简单,但它不会发生在我身上.

提前致谢.

[编辑]

根据评论中的要求,提供更大的XML示例:

<?xml version="1.0" encoding="utf-8"?>
<project>
  <method>
    <docblock>
      <tag line="763" name="todo" description="This needs doing"/>
    </docblock>
  </method>
  <method>
    <docblock>
      <tag line="14" name="todo" description="This also needs doing"/>
    </docblock>
  </method>
</project>

(我已经删除了不相关的元素和属性,但这是基本结构)

据我所知,那里没有任何XML命名空间.

解决方法

我最终取得的成就如下:

生成一个包含以下数据的报告文件

<report>
  <serie1>10</serie1>
  <serie2>20</serie2>
  <serie3>30</serie3>
</report>

然后我使用以下配置配置我的绘图:

XPath Result type : Nodeset
 XPath Expression : /report/*

然后我得到了一个正确的我的数据绘图:系列名称取自元素名称(serie1,serie2 ……),值取自文本内容.
实际上,这是帮助块中解释的内容

(...)
 If a nodeset is selected,a point for each node that is selected will be plotted.
 The label of each point is the name of the element that was selected,the value is the text value.

我不认为这个插件能够从XML属性获取值.也许您应该考虑编写一个简单的XSLT样式表,它将您的文件转换为具有预期格式的另一个样式.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。