我的应用程序将解析通过HTTP接收的XML.据我所知,解析XML有三种主要方式:
据说SAX是其中速度最快的,而DOM不适合大型XML文档.但就解析而言,什么是大型XML文档?对于以下内容,推荐的解析器是什么?
我有一个在.NET 4.0下运行的Windows窗体应用程序.此应用程序导入DLL,该DLL可用于:
这是我的代码片段:
[DllImport("my64Bit.dll"), EntryPoint="GetLastErrorText"]
private static extern string GetLastErrorText();
// Do some stuff...
string message = GetLastErrorText();
Run Code Online (Sandbox Code Playgroud)
调用此函数(为x64编译)时,应用程序崩溃.我甚至无法在Visual Studio 2012中看到任何调试消息.与32位DLL(为x86编译)相同的代码工作正常.原型是:
LPCSTR APIENTRY GetLastErrorText()
不幸的是,我没有关于DLL的任何进一步信息,因为它是第三方产品.
使用 Groovy,我需要读取一个 XML 文件并删除包含 XML 声明的第一行。
来源内容
<?xml version="1.0" encoding="UTF-8"?>
<myxmldoc>
content
</myxmldoc>
Run Code Online (Sandbox Code Playgroud)
目标内容
<myxmldoc>
content
</myxmldoc>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的代码... 将文件中除第一行以外的所有行读取到列表中。然后,通过将每一行添加到下一行来构建一个新字符串。
def soapBodyList = new File(inputFilename).readLines()
soapBodyList = soapBodyList[1..soapBodyList.size-1]
def soapBody = ""
soapBodyList.each {
soapBody += it
}
return soapBody
Run Code Online (Sandbox Code Playgroud)
但是我觉得必须有一种更简单的方法来删除第一行 abnd 将结果作为字符串。
我正在使用语义UI创建菜单.此菜单应具有彩色背景和文本项.出于测试目的,我添加了这个green类:
<body>
<div class="ui stackable green text menu">
<div class="header item">Site Title</div>
<div class="ui right text menu">
<a class="item">Item 1</a>
<a class="item">Item 2</a>
<a class="item">Item 3</a>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
显示菜单及其项目,但没有应用绿色.
在我的 Vaadin 应用程序中,我显示了Grid带有自定义类的项目Transaction。该网格的行为应如下所示:
Transaction当前行的项目执行一些代码。在这里,一个简单的Notification.show().我设法用以下代码来实现这一点:
private final Grid<Transaction> transactionGrid = new Grid<>(Transaction.class, false);
transactionGrid.setItems(transactionService.getItems());
transactionGrid.addColumn(getActionsRenderer()).setHeader("Actions").setAutoWidth(true);
private ComponentRenderer<Icon, Transaction> getActionsRenderer() {
final Icon replyIcon = new Icon(VaadinIcon.ENVELOPE);
return new ComponentRenderer<>(transaction -> {
replyIcon.addClickListener(event -> Notification.show(transaction.getOrderNumber()));
return replyIcon;
});
}
Run Code Online (Sandbox Code Playgroud)
单击该图标会显示一条带有交易的通知orderNumber。问题如下:
该应用程序还提供了一个“重新加载”按钮,它的作用与此类似:
refreshIcon.addClickListener(event -> {
final List<Transaction> transactions = transactionService.getItems();
transactionGrid.setItems(transactions);
});
Run Code Online (Sandbox Code Playgroud)
单击刷新图标后,单击该行replyIcon会显示相同数据的三个通知。下次刷新后,它会显示五个,然后是七个,依此类推。
因此,看起来好像每次刷新都会添加两个任何“组件”,它们都注册相同的点击侦听器。调试时,我可以看到有多个ClickEvent,eventBus但我不知道它们来自哪里。
匹配字符串的正确正则表达式是什么?
:我想出了这个,但不知道它是否足够:
.{16}:
我正在尝试使用MVVM模式开发一个WPF应用程序 - 实际上它更像是一个工具.我已经阅读了几篇文章,观看了视频,发布了一些问题,但不知怎的,我觉得我对这个MVVM事物的理解或理解不是"正确的".
我将从UI开始.在第一阶段,UI将显示以下内容:
PasswordBox开始)所以我会确定需要处理的以下数据:
ObservableCollection<Project>项目列表Project代表活动项目对象boolean,如果登录到一个项目或不我担心,我不知道我应该如何在MVVM之后构建或设计这个.我应该在这里使用多少视图,视图模型和模型?当然,应用程序会增长,但不会那么多.让我们坚持以上.
自从我上一次编程练习以来已经有一段时间了,所以这是一个相当基本的问题.但是我找不到任何具体的答案.
假设我已经定义了一个可能导致异常的方法.该方法看起来像这样(在相当伪代码中):
public int Calculate(int x, int y)
{
try
{
doSomeCalc();
}
catch (SomeException ex)
{
doExceptionHandling();
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果应用程序的另一部分想要使用此方法,它应该使用另一个try-catch块吗?
public MyMainApp() {
try
{
Calculate(1, 2);
}
catch (SomeException ex)
{
doExceptionHandling();
}
}
Run Code Online (Sandbox Code Playgroud)
所以这里的问题是我应该在哪里使用try-catch,它在哪里是多余的?
我们将 Wildfly 15 与 JMX Exporter 结合使用。当启动 WildFly 服务器时,我遇到以下异常,并且我已经没有想法了。该包存在于modules/system/layers/base/org/wildfly/common/main/wildfly-common-1.4.0.Final.jar.
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/jboss/wildfly-15.0.1.Final
JAVA: /opt/java/jdk1.8.0_201/bin/java
JAVA_OPTS: -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Xbootclasspath/p:/opt/jboss/wildfly-15.0.1.Final/modules/system/layers/base/org/jboss/logmanager/main/jboss-logmanager-2.1.5.Final.jar -Xbootclasspath/p:/opt/jboss/wildfly-15.0.1.Final/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-1.1.6.Final.jar -Xbootclasspath/p:/opt/jboss/wildfly-15.0.1.Final/modules/system/layers/base/org/slf4j/impl/main/slf4j-jboss-logmanager-1.0.3.GA.jar -javaagent:/opt/jboss/wildfly-15.0.1.Final/prometheus/jmx-prometheus.jar=9404:/opt/jboss/wildfly-15.0.1.Final/prometheus/config.yaml -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager -server -Xmx3G -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n
=========================================================================
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
Listening for transport dt_socket at address: 8787
java.lang.NoClassDefFoundError: org/wildfly/common/net/HostName
at org.jboss.logmanager.ExtLogRecord.<init>(ExtLogRecord.java:87)
at org.jboss.logmanager.Logger.log(Logger.java:796)
at org.jboss.logging.JBossLogManagerLogger.doLogf(JBossLogManagerLogger.java:53)
at org.jboss.logging.Logger.logf(Logger.java:2398)
at org.jboss.msc.service.ServiceLogger_$logger.greeting(ServiceLogger_$logger.java:40)
at org.jboss.msc.service.ServiceContainerImpl.<clinit>(ServiceContainerImpl.java:91)
at org.jboss.msc.service.ServiceContainer$Factory.create(ServiceContainer.java:250)
at org.jboss.as.server.BootstrapImpl$ShutdownHook.register(BootstrapImpl.java:231)
at org.jboss.as.server.BootstrapImpl$ShutdownHook.access$100(BootstrapImpl.java:221)
at org.jboss.as.server.BootstrapImpl.<init>(BootstrapImpl.java:72)
at org.jboss.as.server.Bootstrap$Factory.newInstance(Bootstrap.java:278)
at org.jboss.as.server.Main.main(Main.java:106)
at org.jboss.modules.Module.run(Module.java:352)
at org.jboss.modules.Module.run(Module.java:320)
at org.jboss.modules.Main.main(Main.java:593)
Run Code Online (Sandbox Code Playgroud) Map在 Java 中创建标准很容易。
Map<Integer, String> map = new HashMap<>();
map.put(1, "Name 1");
map.put(2, "Name 2");
Run Code Online (Sandbox Code Playgroud)
现在我需要“扩展”这种标准映射方法,以便每个键可以表示多个值,例如:
Map<Integer, String, String, String> map = new HashMap<>();
map.put(1, "Name 1", "Address 1", "ZIP Code 1");
map.put(2, "Name 2", "Address 2", "ZIP Code 2");
Run Code Online (Sandbox Code Playgroud)
是否有任何“标准”实现或库提供这样的功能?我知道例如 Apache Commons MultiValuedMap( https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/MultiValuedMap.html ) 但这似乎不适合上述用途案件。
c# ×3
string ×2
xml ×2
android ×1
dllimport ×1
exception ×1
groovy ×1
java ×1
java-8 ×1
jboss ×1
jmx-exporter ×1
mvvm ×1
parsing ×1
regex ×1
semantic-ui ×1
try-catch ×1
vaadin ×1
vaadin-flow ×1
vaadin-grid ×1
vaadin14 ×1
wildfly ×1
wildfly-15 ×1
wpf ×1