在搜索SO和Google时,我发现有一些Java HTML解析器一直被各方推荐.不幸的是,很难找到有关各种图书馆优势和劣势的任何信息.我希望有些人花了一些时间来比较这些库,并且可以分享他们学到的东西.
这是我见过的:
如果有一个我错过的主要解析器,我也很想知道它的优点和缺点.
谢谢!
规范指定可以li使用伪元素"marker" 修改list-item()标记,如下所示:
li::marker { color: blue; }
Run Code Online (Sandbox Code Playgroud)
但我似乎无法在任何浏览器中使用它.
有没有浏览器支持这个?或者我做错了什么?
我想使用RELAX NG schemata验证XML文档,我想使用JAXP验证API.
从谷歌搜索,似乎我可以使用Jing和ISO RELAX JARV到JAXP Bridge.不幸的是,在将两者都添加到我的类路径后,我无法让它工作.SchemaFactory它只是IllegalArgumentException在尝试实例化工厂时抛出一个- 我向内看SchemaFactory,显然SchemaFactoryFinder是返回null结果.
所以我很欣赏这两个问题的答案:
我需要这个来使用Java 5和Java 6.
谢谢!
我来自Java,我将Runnables 提交给一个ExecutorService由线程池支持的.在Java中非常清楚如何设置线程池大小的限制.
我对使用Scala actor感兴趣,但我不清楚如何限制并发性.
让我们假设,我正在创建一个接受"工作"的网络服务.提交作业的POST请求,我希望我的服务将作业排入队列然后立即返回202 Accepted- 即作业是异步处理的.
如果我使用actor来处理队列中的作业,我如何限制处理的同时作业的数量?
我可以想到几种不同的方法来解决这个问题; 我想知道是否有社区最佳实践,或者至少是一些明确建立的方法,这些方法在Scala世界中有些标准.
我想到的一种方法是让一个协调员角色来管理工作队列和工作处理者; 我想它可以使用一个简单的int字段来跟踪当前正在处理的作业数.我确信这种方法会有一些问题,例如确保跟踪何时发生错误以减少数量.这就是为什么我想知道Scala是否已经为此提供了更简单或更封装的方法.
顺便说一句我以前试过问这个问题,但我问得很厉害.
谢谢!
我只是在学习,并且非常喜欢Actor模式.我现在正在使用Scala,但我对建筑风格感兴趣,因为它在Scala,Erlang,Groovy等中使用.
我想到的情况是我需要同时做的事情,例如,让我们说"做一份工作".
使用线程,我将创建一个线程池和一个阻塞队列,并让每个线程轮询阻塞队列,并在进入和离开队列时处理作业.
有了演员,处理这个问题的最佳方法是什么?是否有意义创建一个演员池,并以某种方式向他们发送包含或作业的消息?也许与"协调员"演员?
注意:我忘记提到的案例的一个方面是:如果我想约束我的应用程序将同时处理的作业数量该怎么办?也许配置设置?我当时认为游泳池可能很容易做到这一点.
谢谢!
我正在使用一个使用Joda Time的Scala脚本.直到今天,这个工作正常.某种程度上,某些事情发生了变化,而且不再有效.
这有效:
$ scala -cp "lib/*"
Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_29).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import org.joda.time._
import org.joda.time._
scala> Period.minutes(5)
res0: org.joda.time.Period = PT5M
Run Code Online (Sandbox Code Playgroud)
但这不是:
$ scala -cp "lib/*" test.scala
/Users/avi/Dev/experiments/rollups/scala/test.scala:4: error: object joda is not a member of package org
import org.joda.time._
^
one error found
Run Code Online (Sandbox Code Playgroud)
test.scala 仅包含:
#!/usr/bin/env scala -cp lib/* -deprecation
!#
import org.joda.time._
Period.minutes(5)
Run Code Online (Sandbox Code Playgroud)
这也行不通:
$ scala -cp …Run Code Online (Sandbox Code Playgroud) AKA按设定的间隔做某事.
例如,假设我想每60秒扫描一个目录.
在Java中,我会使用ScheduledExecutorService如下:
Executor pool = Executors.newScheduledThreadPool(10)
pool.scheduleAtFixedRate(scanner, 0, 60, TimeUnit.SECONDS)
Run Code Online (Sandbox Code Playgroud)
这很好.
问题是,我想我想在我的程序中尝试使用Scala actor,但是我对如何组合actor和Java Executor,或者它们是否应该这样做有点困惑.
我想也许我可以有一个简单的跑步者,它只会每隔N秒向一个演员发送一条消息- 这有意义吗?
我正在编写一个使用Joda Time 2.0 的Scala脚本.
当我尝试运行我的脚本时,我得到这样的错误:
error: value weeks is not a member of object org.joda.time.Period
case "w" => Some(Period.weeks(windowSpecNum))
Run Code Online (Sandbox Code Playgroud)
我也越来越为消息Period.minutes,Period.hours和Period.days.
这真的很奇怪,因为我使用其他Joda Time类没有问题,并且因为这个类在Scala REPL中工作正常:
scala> Period.minutes(5)
res0: org.joda.time.Period = PT5M
Run Code Online (Sandbox Code Playgroud)
我尝试了一些解决方法:
error: org.joda.time.Period does not have a constructor
case "m" => Some(new Period().withMinutes(windowSpecNum))
Run Code Online (Sandbox Code Playgroud)
和:
case "m" => Some(Minutes.minutes(windowSpecNum))
error: error while loading Minutes, Missing dependency 'class org.joda.convert.FromString', required by lib/joda-time-2.0.jar(org/joda/time/Minutes.class)
Run Code Online (Sandbox Code Playgroud)
这没有任何意义,因为joda-convert-1.2.jar在我的类路径中.
只是为了确保我没有对类型做一些愚蠢的事情(我是Scala的新手)我试过这个:val p = Period.hours(5)并得到了同样的错误.
我刚刚学习Clojure,我刚刚编写了这个函数:
(defn replace-last [coll value]
(assoc coll (dec (count coll)) value))
Run Code Online (Sandbox Code Playgroud)
我只是有点担心它对于列表和/或向量来说可能真的很慢 - 我只是不了解它们还不知道.
谢谢!
我正在做这件事:(repeatedly n #(rand-nth (seq coll)))但我怀疑可能有更惯用的方式,原因有两个:
partialrepeatedly说"可能有副作用" 的文字串,暗示它不是用来产生价值我想我可以找到一种方法来使用,reduce但这似乎是棘手而且效率较低,因为它必须处理整个集合,因为reduce它不是懒惰的.