小编Ant*_*ine的帖子

在Xpath中有所区别?

我有这个XML文件,我想从中计算它中引用的用户数.但它们可以出现在多个类别中,我希望这些重复项不被考虑在内.
在下面的示例中,查询应该返回3而不是4.在XPath中是否有办法这样做?用户根本没有排序.

<list>
  <group name='QA'>
    <user name='name1'>name1@email</user>
    <user name='name2'>name2@email</user>
  </group>
  <group name='DEV'>
    <user name='name3'>name3@email</user>
    <user name='name2'>name2@email</user>
  </group>
</list>
Run Code Online (Sandbox Code Playgroud)

xml xpath distinct

45
推荐指数
2
解决办法
5万
查看次数

IE11 innerHTML奇怪的行为

我在IE11中对element.innerHTML有非常奇怪的行为.

正如您在那里看到的那样:http://pe281.s3.amazonaws.com/index.html,某些riotjs表达式未被评估.

在此输入图像描述

我已将其追踪到两件事:
- 欧元符号在它之上.它被编码为&euro;,但我和\u20ACor 有相同的行为&#8364;.它适用于货币符号范围内的所有字符以及其他一些范围.删除或使用标准字符不会导致问题.
- riotjs创建自定义标记和模板的方式.基本上这样做:

var html = "{reward.amount.toLocaleString()}<span>&#8364;</span>{moment(expiracyDate).format('DD/MM/YYYY')}";
var e = document.createElement('div');
e.innerHTML = html;
Run Code Online (Sandbox Code Playgroud)

在结果e节点中,e.childNodes返回以下数组:

[0]: {reward.amount.toLocaleString()}
[1]: <span>€</span>
[2]: {
[3]: moment(expiracyDate).format('DD/MM/YYYY')}
Run Code Online (Sandbox Code Playgroud)

显然,节点2和3应该只有一个.让他们分裂让暴乱无法识别要评估的表达,因此问题.

但还有更多:问题不一致,例如无法在小提琴上复制:https://jsfiddle.net/5wg3zxk5/4/,其中html字符串被正确解析.

所以我想我的问题是一些特定字符如何改变element.innerHTML解析其输入的方式?怎么解决?

javascript internet-explorer-11 riot.js

28
推荐指数
1
解决办法
1117
查看次数

当属性不存在时,选择节点的Xpath查询?

我想选择不存在特定属性的节点.我尝试过Not()函数,但它不起作用.有办法吗?

示例:以下Xpath查询:

group/msg[not(@owner)]
Run Code Online (Sandbox Code Playgroud)

应该检索第一个节点而不是第二个节点.但是,SketchPath(测试Xpath查询的工具)和我的C#代码都认为2个节点都可以.

<group>
    <msg id="EVENTDATA_CCFLOADED_XMLCONTEXT"  numericId="14026"  translate="False"  topicId="302"  status="translated" >
        <text>Context</text>
        <comment></comment>
    </msg>
    <msg id="EVENTDATA_CCFLOADED_XMLCONTEXT_HELP"  numericId="14027"  translate="False"  topicId="302"  status="translated"  owner="EVENTDATA_CCFLOADED_XMLCONTEXT" >
        <text>Provides the new data displayed in the Object.</text>
        <comment></comment>
    </msg>
</group>
Run Code Online (Sandbox Code Playgroud)

事实上,Not()函数正常工作,只是我有其他条件和圆括号未正确设置.errare humanum est.

xpath attributes

26
推荐指数
1
解决办法
4万
查看次数

在Moq中模拟测试对象的方法?

我想测试我的类的方法A,但是没有调用通常由A调用的实际方法B.那是因为B有很多外部交互,我现在不想测试.

我可以为B调用的所有服务创建模拟,但这是相当有用的.我宁愿只是模拟B并让它返回样本数据.

这可能与Moq框架有关吗?

c# moq mocking

22
推荐指数
1
解决办法
7995
查看次数

pg-promise将整数作为字符串返回

我对包含类型列的表有这个简单的查询bigint.

但是当我查询它时,pg-promise将此列的值作为字符串返回.我在文档中找不到相关信息.这是标准行为吗?

var ids = [180, 120];

db.any('SELECT id_brand, brand from catalog_brand WHERE id_brand in ($1:csv)', [ids])
    .then((data) => {
        // return results
    });
Run Code Online (Sandbox Code Playgroud)

data 采用以下形式,id为string而不是int:

[{id_brand: "180", brand: "Ford"}, {id_brand: "120", brand: "Nike"}]
Run Code Online (Sandbox Code Playgroud)

有没有什么可以指示pg-promise返回实际类型?

node.js pg-promise

16
推荐指数
2
解决办法
4159
查看次数

Logstash代理不再编制索引

我有一个Logstash实例作为服务运行,从Redis读取并输出到Elasticsearch.我刚刚注意到最近几天Elasticsearch没有什么新内容,但Redis列表正在增加.

Logstash日志中填充了重复数千行的2个错误:

:message=>"Got error to send bulk of actions"
:message=>"Failed to flush outgoing items"
Run Code Online (Sandbox Code Playgroud)

原因是:

{"error":"IllegalArgumentException[Malformed action/metadata line [107], expected a simple value for field [_type] but found [START_ARRAY]]","status":500}, 
Run Code Online (Sandbox Code Playgroud)

此外,尝试停止服务反复失败,我不得不杀死它.重新启动它会清空Redis列表并将所有内容导入Elasticsearch.现在似乎工作正常.

但我不知道如何防止再次发生这种情况.提到的type字段被设置为每个输入指令的字符串,所以我不明白它如何成为一个数组.
我错过了什么?

我正在使用Elasticsearch 1.7.1和Logstash 1.5.3.该logstash.conf文件如下所示:

input {
  redis {
    host => "127.0.0.1"
    port => 6381
    data_type => "list"
    key => "b2c-web"
    type => "b2c-web"
    codec => "json"
  }
  redis {
    host => "127.0.0.1"
    port => 6381
    data_type => "list"
    key => "b2c-web-staging"
    type => "b2c-web-staging"
    codec …
Run Code Online (Sandbox Code Playgroud)

elasticsearch logstash

13
推荐指数
1
解决办法
698
查看次数

如何将body元素添加到空DOM文档中?

我有一个代表页面正文的字符串,我想解析一些元素.我相信(随意反驳我)最好的方法是创建一个空文档,然后添加正文并使用标准的JS方法来获得我想要的东西.
但我似乎无法将正文添加到文档中.在chrome中,以下代码在第2行失败NO_MODIFICATION_ALLOWED_ERR: DOM Exception 7.

 var dom = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null);
 dom.firstChild.innerHTML = "<body><p>Hello world</p></body>";
Run Code Online (Sandbox Code Playgroud)

有没有办法实现我想要的?

javascript dom

12
推荐指数
2
解决办法
1万
查看次数

如何使用新操作的参数声明rails资源?

我有一个名为Entree的模型,其中newaction需要一个参数,另一个名为Cave的模型的id .我不想在洞穴中嵌入Entree,因为Cave已经嵌套了.
我所做的是将资源Entree声明如下routes.rb:

resources :entrees, :except => [:new]
match "/entrees/new/:id", :to => "Entrees#new", :as => 'new_entree'
Run Code Online (Sandbox Code Playgroud)

这是有效的,但问题是当操作中出现错误时create,我想再次使用无效输入显示页面.但由于没有new动作,我必须做一个redirect_to new_entree_path,这不会保留用户输入.

我尝试过以下(最简单)的路线:

resources :entrees
Run Code Online (Sandbox Code Playgroud)

但是然后路径http://localhost:3000/entrees/new/32返回一个错误:

No route matches [GET] "/entrees/new/32"

问题是,如何在路径文件中使用new操作参数声明Entree资源?

routes ruby-on-rails

11
推荐指数
3
解决办法
1万
查看次数

在Elastic Beanstalk部署期间是否覆盖了Nginx配置文件?

我需要将p3p标头添加到标准Nodejs和Nginx Elastic Beanstalk上的静态资源位置.

我已经ebextension按照这个问题的解释创建了一个脚本.该脚本使用sed add_header在该alias行下添加一个指令,该指令位于静态位置指令下.它运行在/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf文件上.

该脚本不仅修改了文件,还将其复制到"安全"位置,即/ home/ec2-user.根据/var/log/cfn-init.log,脚本运行正常.作为证据,修改后的文件副本在正确的位置显示附加标题.但该/etc/nginx/conf.d/00_elastic_beanstalk_proxy.conf文件没有这个修改.

我只能推断出虽然我的脚本运行良好,但部署过程中的其他内容会覆盖它.这很奇怪,因为根据文档容器命令是在设置应用程序和Web服务器之后运行的,所以我看不出它是什么.

那么/什么覆盖这个文件,我该如何防止这种情况?

nginx amazon-web-services amazon-elastic-beanstalk

11
推荐指数
4
解决办法
9511
查看次数

处理信号以使用 Elastic Beanstalk 上的 nodejs 应用程序正常退出?

我有这个在 Elastic Beanstalk 中运行的 Nodejs 应用程序。我想在应用程序退出时进行一些清理(例如部署新版本,重新启动应用程序服务器)。为此,我正在收听一些事件和信号,但似乎没有一个被触发。这是来自app.js的代码:

process.on("SIGTERM", function() {
  console.log("SIGTERM, clean");
  process.exit(0);
});

process.on("exit", function(code) {
  console.log("Process exiting with code " + code);
});

process.on("uncaughtException", function() {
  console.log("Unhandled exception occurred);
  process.exit(99);
});
Run Code Online (Sandbox Code Playgroud)

当我通过管理控制台重新启动应用程序时,我在日志中看不到任何内容,即使创建了一个新节点进程并杀死了旧节点进程。
如果我手动终止进程,我可以在输出中看到日志消息。这是否意味着 Beanstalk 触发的事件不会发送终止信号?如果是这样,如何优雅地退出?

编辑:这是更多调查的结果。Beanstalk 使用 Upstart 来管理应用程序。在 /etc/init/nodejs 中,有这一行:

exec su -s /bin/sh -c 'PATH=$PATH:$NODE_HOME/bin $EB_NODE_COMMAND 2>&1' nodejs >> /var/log/nodejs/nodejs.log
Run Code Online (Sandbox Code Playgroud)

哪个运行npm start,它使用package.json配置启动应用程序。这是我拥有的进程树:

root     29155  su -s /bin/sh -c PATH=$PATH:$NODE_HOME/bin $EB_NODE_COMMAND 2>&1 nodejs
nodejs   29156   \_ sh -c PATH=$PATH:$NODE_HOME/bin $EB_NODE_COMMAND 2>&1 …
Run Code Online (Sandbox Code Playgroud)

signals amazon-web-services node.js amazon-elastic-beanstalk

8
推荐指数
1
解决办法
1552
查看次数