我使用Java(6)XML-Api对来自Web的html文档应用xslt转换.这个文件格式正确xhtml,因此包含有效的DTD-Spec(<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">).现在出现问题:Uppon转换XSLT-Processor尝试下载DTD并且w3-server通过HTTP 503错误拒绝这一点(由于w3的Bandwith限制).
如何防止XSLT-Processor下载dtd?我不需要我的输入文档验证.
来源是:
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
Run Code Online (Sandbox Code Playgroud)
-
String xslt = "<?xml version=\"1.0\"?>"+
"<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">"+
" <xsl:output method=\"text\" />"+
" <xsl:template match=\"//html/body//div[@id='bodyContent']/p[1]\"> "+
" <xsl:value-of select=\".\" />"+
" </xsl:template>"+
" <xsl:template match=\"text()\" />"+
"</xsl:stylesheet>";
try {
Source xmlSource = new StreamSource("http://de.wikipedia.org/wiki/Right_Livelihood_Award");
Source xsltSource = new StreamSource(new StringReader(xslt));
TransformerFactory ft = TransformerFactory.newInstance();
Transformer trans = ft.newTransformer(xsltSource);
trans.transform(xmlSource, new StreamResult(System.out));
}
catch (Exception …Run Code Online (Sandbox Code Playgroud) 我开发了一个Android-Homescreen-Widget并且遇到了一个奇怪的问题:市场中的"Open"-Button变灰了,因为实际上没有应用程序可以启动.因此,许多人抱怨,因为他们没有意识到我的包是一个小部件.他们甚至给我一个糟糕的评价,我想通过给人们提示他们应该做什么来避免这种情况.描述中的第一行提示(用大写字母写的)根本没用,所以我正在寻找更好的解决方案.
在android-market中安装软件包之后是否可以直接显示消息?
在 Android 中,应用程序可以请求权限android.permission.INTERNET。Android 将 UI 翻译为“完全互联网访问”。
是否存在“限制互联网访问”之类的内容?这里的“满”是什么意思?是否有任何其他权限可以启用 Internet 访问但仅限于特定站点?
我编写了一个应用程序,它只需要访问一个 url,并且只需要一个 HTTP 连接来下载该 url。我是否需要INTERNET-Permission 或者是否有更少的东西仍然可以满足我的需求?
我想在代码中的某处使用maven编译失败,使用原始类型(缺少泛型).我尝试了以下方法:
-Xlint:rawtypes,javac则可以使用参数to发出警告.不幸的是,我必须使用不支持此标志的java 6.如果使用原始类型,是否还有其他maven模块或技巧会产生错误?
我想写一个Bash-Script,它通过ssh登录到几台机器,首先显示它们的主机名并执行一个命令(在每台机器上都是相同的命令).命令的主机名和输出应一起显示.我想要一个并行版本,所以ssh-commands应该在后台和并行运行.
我构建了下面附带的bashscripted.问题是:由于runonip-function在子shell中执行,因此无法访问DATA-array来存储结果.以某种方式可能通过"通过引用传递"函数给子shell访问数组吗?
码:
#!/bin/bash
set -u
if [ $# -eq 0 ]; then
echo "Need Arguments: Command to run"
exit 1
fi
DATA=""
PIDS=""
#Function to run in Background for each ip
function runonip {
ip="$1"
no="$2"
cmds="$3"
DATA[$no]=$( {
echo "Connecting to $ip"
ssh $ip cat /etc/hostname
ssh $ip $cmds
} 2>&1 )
}
ips=$(get ips somewhere)
i=0
for ip in $ips; do
#Initialize Variables
i=$(($i+1))
DATA[$i]="n/a"
#For the RunOnIp Function to background
runonip $ip …Run Code Online (Sandbox Code Playgroud) 我得到了一个涉及a ListView和a 的简单代码,ArrayAdapter它会在某些设备上抛出IndexOutOfBoundsException.问题是:我不知道这个Exception是如何发生的,我只从Android的Developer Console获得堆栈跟踪.
简化代码示例如下所示.元素getItem的ArrayAdapter失败操作如何position?该ArrayAdapter是从未改变,有没有其他方法了Activity.
我知道它IndexOutOfBoundsException是什么,我知道我可以通过首先检查长度来防止它.但我很好奇:这个例外怎么会发生在这里?如何点击数据结构中不存在的事件?
减少代码:
public class EventListActivity extends Activity {
public void onStart() {
final ListView listview = new ListView(this);
final Event[] events = [Retrieve a Array from somewhere]
final ArrayAdapter<Event> a = new ArrayAdapter<Event>(this, R.layout.eventlistitem, events);
listview.setAdapter(a);
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Event event = a.getItem(position);
^^^^^^^ throws Exception
}
});
Run Code Online (Sandbox Code Playgroud)
例外: …
我的脚本包含以下两行作为import-statements:
import os
from os import path
Run Code Online (Sandbox Code Playgroud)
这对我的脚本来说似乎是一种合乎逻辑的方法:我os.path经常使用,所以我想以它的形式访问它path.另一方面,我需要其他方法os,但很少,所以我可以写os.access(...)例如.
为什么气馁呢?pychecker例如抱怨这个.
我使用这个logback配置文件:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-10.-10thread] %-5level %-30logger{1} - %msg%n</pattern>
</encoder>
</appender>
<if condition='isDefined("fileout-dir")'><then>
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator class="edu.kit.sdq.storagebenchmarkharness.logging.SBHThreadDiscriminator"/>
<sift>
<appender name="FILE-${thread}" class="ch.qos.logback.core.FileAppender">
<file>${fileout-dir:-}${thread}.log</file>
<append>true</append>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} %-5level %-30logger{1} - %msg%n</pattern>
</layout>
</appender>
</sift>
</appender>
<root>
<appender-ref>SIFT</appender-ref>
</root>
</then> </if>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
运行我的应用程序时,我收到以下错误:
org.codehaus.commons.compiler.CompileException: Line 1, Column 45: A method named "isDefined" is not declared in any enclosing class nor any supertype, nor through a static import
at org.codehaus.commons.compiler.CompileException: Line 1, Column …Run Code Online (Sandbox Code Playgroud) 假设您有以下代码:
public abstract class DecisionFunctionJ {
public abstract double evaluate();
public DecisionFunctionJ add(final DecisionFunctionJ another) {
return new DecisionFunctionJ() {
@Override
public double evaluate() {
return this.evaluate() + another.evaluate();
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码并不像预期的那样有效,因为它导致了无限循环/ StackOverflowException.原因很明显:this.evaluate()引用evaluate内部匿名类的evaluate方法而不是外部抽象类的方法.
我该如何执行外部evaluate方法?使用DecisionFunctionJ.this.evaluate()没有帮助,因为这两个类都是类型DecitionFunctionJ.
还有什么其他可能性?