我如何反编译jar并将其作为项目加载到Eclipse中,以便我可以修改代码?
我有谷歌反编译jar.寻找指南或任何有关它的经验的见解.
我下载了selenium-java-2.0a5.zip
http://code.google.com/p/selenium/downloads/list
并运行以下代码:
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class Example {
public static void main(String[] args) {
// Create a new instance of the html unit driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new HtmlUnitDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to …
Run Code Online (Sandbox Code Playgroud) 给出以下符合XML的HTML:
<div>
<a>a1</a>
<b>b1</b>
</div>
<div>
<b>b2</b>
</div>
<div>
<a>a3</a>
<b>b3</b>
<c>c3</c>
</div>
Run Code Online (Sandbox Code Playgroud)
做//a
会回来:
[a1,a3]
Run Code Online (Sandbox Code Playgroud)
上面的问题是第三列数据现在位于第二位,当未找到A时,它被完全跳过.
如何表达一个xpath来获取将返回的所有A元素:
[a1, null, a3]
Run Code Online (Sandbox Code Playgroud)
同样的情况//c
,我想知道是否有可能获得
[null, null, c3]
Run Code Online (Sandbox Code Playgroud)
更新:考虑另一种没有共同父母的情况<div>
.
<h1>heading1</h1>
<a>a1</a>
<b>b1</b>
<h1>heading2</h1>
<b>b2</b>
<h1>heading3</h1>
<a>a3</a>
<b>b3</b>
<c>c3</c>
Run Code Online (Sandbox Code Playgroud)
更新:我现在也可以使用XSLT.
<?php
echo getValue('<a>dk</a><b>sh</b>', 'a');
function getValue($string, $tagname) {
$dom = new DomDocument();
$dom->loadXML($string);
$node_list = $dom->getElementsByTagName($tagname)->item(0);
return $node_list->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)
运行脚本返回
Warning: DOMDocument::loadXML(): Extra content at the end of the document in Entity, line: 1 in /Users/johnkim/get.php on line 7
Run Code Online (Sandbox Code Playgroud) 在外部服务上生成pdf,我想将流式传输到我的php服务器的浏览器,同时流式传输到客户端,这样我就不需要从远程文件下载pdf,然后开始初始化下载.我会立即将文件下载或流式传输到请求它的客户端.
我已经写了我想要实现的目标.但是,getElementIdx()
功能不会返回正确的计数.有一个问题,getPreviousSibling()
但我不知道为什么.
public static String getElementXpath(DOMElement elt){
String path = "";
try{
for (; elt != null; elt = (DOMElement) elt.getParentNode()){
int idx = getElementIdx(elt);
String xname = elt.getTagName().toString();
if (idx >= 1) xname += "[" + idx + "]";
path = "/" + xname + path;
}
}catch(Exception ee){
}
return path;
}
public static int getElementIdx(DOMElement elt) {
int count = 1;
try{
for (DOMElement sib = (DOMElement) elt.getNextSibling(); sib != null; sib = (DOMElement) …
Run Code Online (Sandbox Code Playgroud) 所以我试图通过在函数中添加键和值来修改数组modArr
; 我希望var转储显示添加的项目,但我得到NULL.我在这里错过了什么一步?
<?php
$arr1 = array();
modArr($arr1);
$arr1['test'] = 'test';
var_dump($arr);
function modArr($arr){
$arr['item1'] = "value1";
$arr['item2'] = "value2";
return;
}
Run Code Online (Sandbox Code Playgroud) 我想知道一种方法来提取单独的措施.我不确定这个算法是否已经存在,所以我想从左到右扫描乐谱,从一行测量的上方和下方提取所有的空白区域.
我不是在寻找将乐谱转换为MusicXML或提取其他有用信息的方法.不,基本上我正在处理的是一份常规文件.我需要分开段落.我对该段所传达的信息不感兴趣,只是简单地将它们与文件的各个区域分开.在这种情况下,一个段落将是一行措施.我不需要单独的措施,而是每张乐谱的所有措施.
这是我想要的全部乐谱输出之一,但没有标题,作曲家等.
在我的server/server.js中
Meteor.methods({
saveOnServer: function() {
var totalCount = Collections.find({
"some": "condition"
}).count();
if (totalCount) {
var customerId = Collections.update('someId', {
"$addToSet": {
objects: object
}
}, function(err) {
if (err) {
throw err;
} else {
return true;
}
});
} else {}
}
});
Run Code Online (Sandbox Code Playgroud)
我担心当2个客户端同时调用saveOnServer()时,它会为每个客户端返回相同的totalCount,并且最终会将相同的整数插入到对象id中.最终目标是在服务器端使用原子操作插入行,该操作仅在totalCount
成功返回并且插入文档时完成,确保不存在重复的ID?我试图不使用mongodb _id,但有我自己的整数递增id列.
我想知道如何确保每个插入操作的字段自动递增?我目前依赖于获取文件总数.这里有竞争条件吗?如果是这样,处理这个问题的流星方式是什么?