我经常需要测试XML文件是否正确,并且需要一种方法来测试2个XML字符串(或文档)是否相同,例如:
XMLAssert.assertEquals(String xmlExpected, String xmlActual);
Run Code Online (Sandbox Code Playgroud)
此外,显示xml文档的不同之处也很有用.
这应该仅限于standalone ="yes"的文档(即DTD或模式 - 如果有的话 - 不重要).这意味着没有默认值,属性类型无关紧要.应对相邻文本PCDATA节点进行规范化(连接).
请注意,这不能简单地通过词法比较来完成
Assert.assertEquals(xmlExpected, xmlActual);
Run Code Online (Sandbox Code Playgroud)
因为有无限多种方式呈现相同的XML信息集.比较应考虑元素和属性的名称空间(但不考虑属性值 - 这不是规范的一部分).
实现此目的的一种方法可能是将两个文档规范化.或者,可以使用XMLDiff.
几年前我找不到任何自己写的东西.
[我也特别需要比较浮点值,虽然这必须是一个黑客,因为CDATA或PCDATA的数据类型只能被猜到并且不在问题的直接范围内.]
注意:可能需要为每种语言提供特定的解决方案.我对Java和C#特别感兴趣
是否可以在PCRE正则表达式中使用三位ASCII码?空格字符是两位数字(40).你需要添加一个零并将其转义为:\ 040
这是我现在使用的代码片段:
def countOccurences(a, b)
#counts the number of occurences of a in b
count=0
cur=0
while cur < b.length do
temp=b.index(a, cur)
if temp == nil
break
end
count=count+1
cur=temp+a.length
end
return count
end
Run Code Online (Sandbox Code Playgroud)
是否有任何Ruby功能可以做到这一点?任何功能等同?还是更好的?
单击按钮时,字符串应显示为输出ex.good morning或good afternoon.如何使用C#随机选择要显示的字符串?
我正在使用seam开发我的应用程序并在weblogic 10.1MP上运行它使用maven2构建应用程序并且没有在任何存储库中找到jboss-seam-wls-compatible.jar文件.在maven中我如何将这个jar从我的本地文件夹复制到target/WEB-INF/lib文件夹.
我正在切换表单以使用View Script作为装饰器.到目前为止我看到的示例在View脚本中执行以下操作:
<td><label for='textEmail'>Email:</label></td>
<td><?php echo $this->element->textEmail; ?></td>
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法让文本显示在Form对象的标签中.
class RegisterForm extends Zend_Form {
public function init () {
$this->setAction('')
->setMethod('post')
->setAttrib('id','formRegister');
$this->addElement('text', 'textEmail', array('label' => 'Email: '));
$oEmail = $this->getElement('textEmail')
->setRequired(true)
->addFilter('StringTrim')
->addValidator('EmailAddress');
$oEmail->setDecorators(array('ViewHelper', 'Errors'));
$this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/RegisterForm.phtml'))));
}
}
Run Code Online (Sandbox Code Playgroud)
以上是我的表单对象的定义方式.有人知道如何访问定义的标签值吗?可能采用以下格式?
<?php echo $this->element->textEmail->label; ?>
Run Code Online (Sandbox Code Playgroud)
当然这不起作用.:p谢谢〜
我正在使用MySQL.我有一张看起来像这样的表:
id: primary key
content: varchar
weight: int
Run Code Online (Sandbox Code Playgroud)
我想要做的是从该表中随机选择一行,但考虑到重量.例如,如果我有3行:
id, content, weight
1, "some content", 60
2, "other content", 40
3, "something", 100
Run Code Online (Sandbox Code Playgroud)
第一行有30%被选中的机会,第二行被选中的几率为20%,第三行被选中的几率为50%.
有没有办法做到这一点 ?如果我必须执行2或3个查询,这不是问题.
我想找到 Ruby 提供的最快的记录器。我的直觉告诉我 syslog 会在这场比赛中获胜。但我的直觉似乎是错误的。Syslog 是我测试过的三个记录器中最慢的。我使用的是我的 MacBook Pro、OSX 10.6 (Snow Leopard)、Intel Core2 Duo、4GB 内存和由 MacPorts 构建的 Ruby 1.8.7。难道我做错了什么?或者 Ruby 的 syslog 实现就是这么慢?如果结果与我的不同,请随时发布您的结果。也欢迎您将您最喜欢的 Ruby 记录器添加到基准测试中。我的目标是找到可用的最快的记录器。我只对纯性能(吞吐量)感兴趣。像多目标日志记录这样的功能在这里不是问题。
# loggers_bench.rb
require 'rbench'
require 'activesupport'
require 'syslog'
require 'logger'
buffered = ActiveSupport::BufferedLogger.new('buffered.log')
logger = Logger.new('logger.log')
syslog = Syslog.open('rb_syslog')
TIMES = 10_000
RBench.run(TIMES) do
column :syslog, :title => 'Syslog'
column :logger, :title => 'Logger'
column :buffered, :title => 'ActiveSuppoort::BufferedLogger'
report '#info' do
syslog {
300.times do |i|
syslog.info "hello #{i}"
end
}
logger {
300.times do …Run Code Online (Sandbox Code Playgroud) 希望这很简单:我有一个相对较长的列表,其中每个列表项包含非常少的文本.例如:
* a * b * c * d * e * f
我想格式化它:
* a * d * b * e * c * f
我宁愿不创建一个包含2个列表的表,因为我希望能够轻松更改列表而不必担心更新所有列.
乳胶中最好的方法是什么?