我正在尝试使用 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 然后问我结果是节点集、节点、字符串、 bool 值还是数字。
我假设“Nodeset”适用于 //tag[@name='todo'],“Number”适用于 count(//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 ...),值取自文本内容。 事实上,这就是帮助 block 中的解释:
(...)
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 样式表,它将您的文件转换为具有预期格式的另一个文件。
关于xml - XPath 和 Jenkins Plot 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8941150/
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll
我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'
您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio
我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com
遍历nokogiri并使用xpath选择元素相当容易。我需要这个反之亦然,意思是:我需要例如在nokogiri节点上调用.to_xpath以获取元素的完整xpath以将其存储在记录中。有人知道这样做的方法吗? 最佳答案 我能想到的最简单的方法是:Nokogiri::CSS.xpath_fornode.css_path编辑:您也可以尝试使用path方法。 关于ruby-如何从nokogiri对象获取标识符(例如xpath)?,我们在StackOverflow上找到一个类似的问题:
我想禁用HTTP参数的自动XML解析。但我发现命令仅适用于Rails2.x,它们都不适用于3.0:config.action_controller.param_parsers.deleteMime::XML(application.rb)ActionController::Base.param_parsers.deleteMime::XMLRails3.0中的等价物是什么? 最佳答案 根据CVE-2013-0156的最新安全公告你可以将它用于Rails3.0。3.1和3.2ActionDispatch::ParamsParser::