小编Wil*_*ill的帖子

XPath NodeList顺序(Java)

我有以下XML结构。

<?xml version="1.0" encoding="UTF-8"?>
<root> 
  <header> 
    <row> 
      <column n="name" />
      <column n="age" />
      <column n="email" />
    </row> 
  </header>  
  <body> 
    <row> 
      <column>Foo</column>  
      <column>99</column>  
      <column>foo@test.com</column> 
    </row>  
  </body> 
</root>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下XPath表达式获取标题列,同样也获取正文列。

PathExpression headerExpr = xPath.compile("/root/header/row/column/@n");
NodeList headerColumns = (NodeList) headerExpr.evaluate(document, XPathConstants.NODESET);
PathExpression bodyExpr = xPath.compile("/root/body/row/column");
NodeList bodyColumns = (NodeList) bodyExpr.evaluate(document, XPathConstants.NODESET);
for (int i = 0; i < headerColumns.getLength(); i++) {
                System.out.println((Attr) headerColumns .item(i)).getValue() + ": " + bodyColumns.item(i).getTextContent());
        }
Run Code Online (Sandbox Code Playgroud)

我是否可以假设XPath将始终以相同的顺序返回标头和正文列,以便它们始终匹配?或者甚至可以假设这些列始终按文档顺序返回?

java xpath nodelist

5
推荐指数
1
解决办法
2558
查看次数

Git 分支模型,拥有开发分支有什么好处?

下面的 Git 分支模型似乎非常普遍。 http://nvie.com/posts/a-successful-git-branching-model/

在我们当前的项目中,我们没有开发分支,从 master 分支创建功能/错误修复分支并将它们合并回来并标记所有相关的里程碑(完成的功能/错误修复/发布)。

所以我想知道,拥有一个开发分支有什么好处?

git branch branching-strategy

5
推荐指数
1
解决办法
2039
查看次数

Gnuplot:具有置信区间的线点

我有以下数据:

数据

我想绘制一个图表,显示所有x与线连接的平均值(线点),并显示所有置信区间[ci_lower,ci_upper].我设法使用2个图表来做到这一点.

set xrange [0:1100000]
set yrange [0:5000]
plot \
'2011-06-16_1n_result.txt' using 1:7 title '1 node' with lines, \
    '2011-06-16_1n_result.txt' using 1:7:10:11 notitle with errorbars
Run Code Online (Sandbox Code Playgroud)

然而,两种颜色看起来并不好看,我觉得应该有一种方法可以用一个单一的情节来做到这一点.

那是什么解决方案代码?

最好的,威尔

gnuplot confidence-interval

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

Java正则表达式替代流上的字节

我有XML文件(以UTF-8编码)有两个问题:

  • 其中一些(不是全部)包含字节顺序标记 EF BB BF

  • 其中一些(不是全部)包含Null字符00,分布在整个文件中.

这两个问题都阻止我使用SAX Parser解析XML.我目前的方法是将文件读入一个字符串并使用正则表达式来提取这些字符并将字符串写回文件,这很好.但是我的文件非常大(几百兆字节)并且将文件读入一个String并且每次调用replaceAll()时创建一个相同大小的字符串,很快就会导致java堆空间错误.

增加堆大小绝对不是一个长期的解决方案.我需要流式传输文件并动态提取所有这些字符.

有关如何使用高效解决方案的任何建议?

java regex xml stream

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

Oracle SQL语法:带引号的标识符

我遇到了类似的SQL查询

select "hello"
from "foo"."bar"
Run Code Online (Sandbox Code Playgroud)

我发现在Oracle中我们可以使用带引号和不带引号的标识符: 数据库对象名称和限定符

...带引号的标识符以双引号(")开头和结尾.如果使用带引号的标识符命名模式对象,则每当引用该对象时都必须使用双引号...

我问DBA他们告诉我有一个名字的表但不是"bar"

这是为什么?

sql oracle double-quotes

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

Oracle SQL语法:V $视图

我注意到Oracle带有一些特殊的表/视图(例如V$SESSION),它们不包含dba_tables在内dba_views.

这是为什么?

有人可以解释表或视图何时属于dba_tables/ dba_views何时不属于?

oracle view

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

java.util.regex.Matcher困惑组

我无法获得正确的正则表达式匹配组.我的代码归结为以下内容:

Pattern fileNamePattern = Pattern.compile("\\w+_\\w+_\\w+_(\\w+)_(\\d*_\\d*)\\.xml");
Matcher fileNameMatcher = fileNamePattern.matcher("test_test_test_test_20110101_0000.xml");

System.out.println(fileNameMatcher.groupCount());

if (fileNameMatcher.matches()) {
    for (int i = 0; i < fileNameMatcher.groupCount(); ++i) {
        System.out.println(fileNameMatcher.group(i));
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望输出为:

2
test
20110101_0000
Run Code Online (Sandbox Code Playgroud)

它然而:

2
test_test_test_test_20110101_0000.xml
test
Run Code Online (Sandbox Code Playgroud)

有人有解释吗?

java regex matcher regex-group

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

Oracle SQL语法:内部联接

我现在无法访问Oracle数据库,所以我在这里发布我的问题:

以下语句是否有效Oracle SQL语法?

SELECT a1
FROM t1 INNER JOIN t2
Run Code Online (Sandbox Code Playgroud)

我特别想知道是否需要为内连接指定连接属性.

最好的,威尔

sql oracle syntax inner-join

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

Oracle SQL语法:选择

以下sql语句在Oracle SQL中是否有效?

1)

select 1
Run Code Online (Sandbox Code Playgroud)

2)

select test from (select 1 as test)
Run Code Online (Sandbox Code Playgroud)

3)

select test from (select 1 as test) s
Run Code Online (Sandbox Code Playgroud)

提前致谢!

最好的,威尔

sql oracle select

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

使用单一检查习语进行延迟初始化

在"Effective Java,Second Edition"的第71项中,为了延迟实例化实例字段,引入了双重检查惯用语和单一检查用语.

仔细检查成语

private volatile FieldType field;
FieldType getField() {
  FieldType result = field;
  if (result == null) {
    synchronized(this) {
      result == field;
      if (result == null)
        field = result = computeFieldValue();
    }
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)

单一检查成语

private volatile FieldType field;
FieldType getField() {
  FieldType result = field;
  if (result == null) {
    field = result = computeFieldValue();
  }
  return result;
}
Run Code Online (Sandbox Code Playgroud)

在Joshua所述的复核习语中,结果变量用于确保仅读取一次volatile 字段,从而提高性能.我理解这一点,但是我不明白为什么我们在单一检查习语中需要它,因为我们只读过一次字段.

java volatile lazy-initialization effective-java

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

使用Jasmine监视Backbone View回调方法

我有以下观点:

  ...
  var TreeView = Backbone.View.extend({
    el: '#org-tree',

    initialize: function() {
      eventBus.on("route:change", _.bind(this.triggerFilterEvent, this));
    },

    render: function() { ... },

    foo: function() { console.log("foo"); },

    triggerFilterEvent: function(name) {
      this.foo();
      ...
    }

  });
  ...
Run Code Online (Sandbox Code Playgroud)

我的规格如下:

 describe('TreeView', function() {
    var treeView = new TreeView();

    it('calls triggerFilterEvent when receiving a route:change', function() {
      spyOn(treeView, 'triggerFilterEvent');
      spyOn(treeView, 'foo');
      treeView.delegateEvents();
      eventBus.trigger("route:change", "test");
      console.log('TriggerCOunt:' + treeView.triggerFilterEvent.callCount);
      console.log('FooCount: ' + treeView.foo.callCount);
      expect(treeView.triggerFilterEvent).toHaveBeenCalled();
    });
  });
Run Code Online (Sandbox Code Playgroud)

treeView.delegateEvents()按照以下解决方案的建议添加: SpyOn使用jasmine的骨干视图方法

但是我的测试仍然失败了:

LOG: 'triggerFilterEvent with: test'
LOG: 'Event has been …
Run Code Online (Sandbox Code Playgroud)

view spy backbone.js jasmine

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