小编bgu*_*uiz的帖子

XSLT:将base64数据转换为图像文件

我已经看到了几个关于如何在base64中编码图像文件的问题,但是反过来如何 - 如何从存储在XML文件中的base64字符串重构图片?

<resource>
<data encoding="base64">
R0lGODlhEAAQAPMAMcDAwP/crv/erbigfVdLOyslHQAAAAECAwECAwECAwECAwECAwECAwECAwEC
AwECAyH/C01TT0ZGSUNFOS4wGAAAAAxtc09QTVNPRkZJQ0U5LjAHgfNAGQAh/wtNU09GRklDRTku
MBUAAAAJcEhZcwAACxMAAAsTAQCanBgAIf8LTVNPRkZJQ0U5LjATAAAAB3RJTUUH1AkWBTYSQXe8
fQAh+QQBAAAAACwAAAAAEAAQAAADSQhgpv7OlDGYstCIMqsZAXYJJEdRQRWRrHk2I9t28CLfX63d
ZEXovJ7htwr6dIQB7/hgJGXMzFApOBYgl6n1il0Mv5xuhBEGJAAAOw==
</data>
<mime>image/gif</mime>
<resource-attributes>
    <file-name>clip_image001.gif</file-name>
</resource-attributes>
</resource>
Run Code Online (Sandbox Code Playgroud)

鉴于上述XML节点resource,我该如何创建clip_image001.gif

请建议:

  1. XSLT处理器和/或扩展支持此功能
  2. 触发转换的示例XSLT

请注意,它必须至少能够处理GIF和PNG文件格式.优选地,不限于任何OS.


实施解决方案

基于Mads Hansen的解决方案.主要区别在于我net.sf.saxon.value.Base64BinaryValue直接在我的命名空间中引用而不是使用saxon命名空间,因为我比Saxonica网站对函数base64Binary-to-octetsbase64Binary函数的描述更直观地理解Java API .

<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:b64="net.sf.saxon.value.Base64BinaryValue"
    xmlns:fos="java.io.FileOutputStream"
    ...
    exclude-result-prefixes="b64 fos">
...
<xsl:for-each select="resource">                
    <xsl:variable name="b64" select="b64:new(string(data))"/>
    ...
    <xsl:variable name="fos" select="fos:new(string($img))"/>
    <xsl:value-of select="fos:write($fos, b64:getBinaryValue($b64))"/>  
    <xsl:value-of select="fos:close($fos)"/>
</xsl:for-each>
...
Run Code Online (Sandbox Code Playgroud)

PS请参阅兄弟问题,了解如何获取识别图像文件所需的哈希值.


这个问题是我之前提出另一个问题一个问题.

xslt file-io base64 image-processing evernote

8
推荐指数
2
解决办法
2万
查看次数

Windows中的Pygame:ImportError:DLL加载失败

我刚刚安装了PyGame 1.9.1(在现有的python 2.6.4上).Python和它的标准库工作,然而,python甚至能够找到pygame模块(正确)有一个问题.

Traceback (most recent call last):
  File "C:\foo\bar\firstGame.py", line 2, in <module>
    import pygame
  File "C:\python264\lib\site-packages\pygame\__init__.py", line 95, in <module>
    from pygame.base import *
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?谷歌搜索产生了以下回应,我试图无效:

谁在那里修复了win + pygame的问题?

谢谢


编辑:根据要求添加更多信息:
- Windows版本:Windows Vista(定期更新)
- 使用的安装程序:Windows MSI安装程序
- 已安装:所有用户
- 文件数量C:\python264\lib\site-packages\pygame:

  • DLL:14
  • PYD:34
  • PY:19
  • PYC:1

python windows import dll pygame

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

从IzPack调用Java类

如何从IzPack的Java类调用方法?静态方法没问题,我需要能够传递参数.

谢谢!


背景资料:

我正在尝试编写一个能够检测以前安装的应用程序版本的IzPack安装程序.在发现它并不真正支持此功能(Windows除外)之后,我认为唯一的方法是编写Java类并从IzPack调用它.

Tim Williscroft 之前曾建议过这种方法,它读取类的静态字段的值:

 <condition type="java" id="jbossEnv">
             <java> 
                 <class>au.com.codarra.ela.installer.JBossChecker</class
                 <field>hasJBossEnv</field>
             </java>
             <returnvalue type="boolean">true</returnvalue>
 </condition>
Run Code Online (Sandbox Code Playgroud)

但是,是否可以<java><condition>标签以外的地方打电话?我希望能够从<variable>标签中调用它.
此外,是否可以从Java类调用方法而不是读取字段的值?我希望能够将参数传递给我的班级.

java installer izpack

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

从Netbeans构建时自动签名JAR

我想知道Netbeans是否有一些选项或设置允许我自动签署jar作为构建的一部分.

java netbeans build self-signed jar-signing

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

将日期和时间数字转换为time_t并指定时区

我有以下整数:

int y, mon, d, h, min, s;
Run Code Online (Sandbox Code Playgroud)

他们的价值观是:2012,06,27,12,47,53分别.我想代表"2012/06/27 12:47:53 UTC"的日期时间,如果我在我的应用程序中的其他地方选择了"UTC",或者"2012/06/27 12:47:53 AEST"如果我在我的应用程序中的其他地方选择了"AEST".

我想将其转换为a time_t,这是我目前使用的代码:

struct tm timeinfo;
timeinfo.tm_year = year - 1900;
timeinfo.tm_mon = mon - 1;
timeinfo.tm_mday = day;
timeinfo.tm_hour = hour;
timeinfo.tm_min = min;
timeinfo.tm_sec = sec;
//timeinfo.tm_isdst = 0; //TODO should this be set?

//TODO find POSIX or C standard way to do covert tm to time_t without in UTC instead of local …
Run Code Online (Sandbox Code Playgroud)

c++ timezone datetime time-t

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

emberjs为一条路线使用多个路径/网址

在恩伯我可以用这个:

App.Router.map(function() {
    this.route('accomodations');
});
Run Code Online (Sandbox Code Playgroud)

所以,如果进入/住宿,它将加载该视图.

我还可以添加:

App.Router.map(function() {
    this.route('accomodations', { path: '/travel' });
});
Run Code Online (Sandbox Code Playgroud)

所以,如果进入/旅行,它将进入相同的视图.

我想能够/住宿和/旅行去同一个视图?这可能吗?

我知道这个:

App.Router.map(function() {
    this.route('accomodations');
    this.route('accomodations', { path: '/travel' });
});
Run Code Online (Sandbox Code Playgroud)

会做我要求的,但如果他们去住宿,它应该显示在网址中,它总是显示旅行.我甚至不确定最后一段代码是否是最佳实践.

javascript url routes views ember.js

8
推荐指数
2
解决办法
3867
查看次数

如何在JSON键上的postgres更新语句中增加值

更新关系表时:

CREATE TABLE foo ( id serial primary key, credit numeric);
UPDATE foo SET bar = bar + $1 WHERE id = $2;
Run Code Online (Sandbox Code Playgroud)

但是,JSON中的等效项不起作用:

CREATE TABLE foo ( id serial primary key, data json);
UPDATE foo SET data->'bar' = data->'bar' + $1 WHERE id = $2;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是error: syntax error at or near "->"- 这是相当模糊的.

我该怎么做呢?

我正在使用postgres 9.3.4


根据@ GordonLinoff在下面的评论,我创建了一个功能请求:https://postgresql.uservoice.com/forums/21853-general/suggestions/6466818-create-update-delete-on-json-keys

如果您也想要此功能,可以对其进行投票.

sql postgresql json sql-update postgresql-9.3

8
推荐指数
2
解决办法
4016
查看次数

合并PostgreSQL中的JSONB值?

使用||运算符会产生以下结果:

select '{"a":{"b":2}}'::jsonb || '{"a":{"c":3}}'::jsonb ;
    ?column?     
-----------------
 {"a": {"c": 3}}
(1 row)
Run Code Online (Sandbox Code Playgroud)

我希望能够实现以下结果(??只是运营商的占位符):

select '{"a":{"b":2}}'::jsonb ?? '{"a":{"c":3}}'::jsonb ;
    ?column?     
-----------------
 {"a": {"b": 2, "c": 3}}
(1 row)
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到顶级a键的子值已"合并",因此结果包含bc.

你如何"深入"合并Postgres中的两个JSONB值?

这有可能,如果是这样的话怎么样?


一个更复杂的测试用例:

select '{"a":{"b":{"c":3},"z":true}}'::jsonb ?? '{"a":{"b":{"d":4},"z":false}}'::jsonb ;
    ?column?     
-----------------
 {"a": {"b": {"c": 3, "d": 4}, "z": false}}
(1 row)
Run Code Online (Sandbox Code Playgroud)

另一个测试用例,其中一个原语"合并"和对象:

select '{"a":{"b":{"c":3},"z":true}}'::jsonb ?? '{"a":{"b":false,"z":false}}'::jsonb ;
        ?column?         
-----------------
 {"a": {"b": false, "z": false}}
(1 row)
Run Code Online (Sandbox Code Playgroud)

postgresql json jsonb

8
推荐指数
2
解决办法
2431
查看次数

Apple M1 芯片架构上的 RSK 节点?

按照这些说明 在配备 Apple M1 Pro 芯片的 2021 MBP 上安装 RSK 节点。我想在本地regtest模式下运行 RSK 节点。安装后,运行命令启动 RSKj:

java \
  -classpath ~/.rsk/rskj-core-3.1.0-IRIS-all.jar \
  -Drpc.providers.web.cors=\* \
  -Drpc.providers.web.ws.enabled=true \
  co.rsk.Start \
  --regtest
Run Code Online (Sandbox Code Playgroud)

...导致以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni in java.library.path, /private/var/folders/40/k7t383452q75nkmr_5kl12_80000gn/T/libleveldbjni-64-8276576211622720497.jnilib: dlopen(/private/var/folders/40/k7t383452q75nkmr_5kl12_80000gn/T/libleveldbjni-64-8276576211622720497.jnilib, 0x0001): tried: '/private/var/folders/40/k7t383452q75nkmr_5kl12_80000gn/T/libleveldbjni-64-8276576211622720497.jnilib' (fat file, but missing compatible architecture (have 'x86_64,i386', need 'arm64e')), '/usr/lib/libleveldbjni-64-8276576211622720497.jnilib' (no such file)]
        at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:182)
        at org.fusesource.hawtjni.runtime.Library.load(Library.java:140)
        at org.fusesource.leveldbjni.JniDBFactory.<clinit>(JniDBFactory.java:48)
        at org.ethereum.datasource.LevelDbDataSource.init(LevelDbDataSource.java:104)
        at org.ethereum.datasource.LevelDbDataSource.makeDataSource(LevelDbDataSource.java:70)
        at co.rsk.RskContext.buildTrieStore(RskContext.java:1031)
        at co.rsk.RskContext.buildAbstractTrieStore(RskContext.java:951)
        at co.rsk.RskContext.getTrieStore(RskContext.java:408)
        at …
Run Code Online (Sandbox Code Playgroud)

apple-silicon apple-m1 rsk

8
推荐指数
2
解决办法
243
查看次数

基于 bytes4 函数选择器动态调用 Solidity 函数

在智能合约中,假设我有一个函数想要根据某些内部逻辑动态调用另一个函数。这里它获取函数选择器作为bytes4变量。

之后就可以使用分支逻辑来调用目标函数之一。看到

但是,是否可以避免这种情况并直接调用函数选择器?参见:(B)

function myDynamicFunc(uint256 someParam) public {
    bytes4 selector = /* ... some internal logic ... */

    if (selector == this.myFuncA.selector) {
      myFuncA(someParam);
    } else if (selector == this.myFuncB.selector) {
      myFuncB(someParam);
    }
    // (A) instead of something like this ^ branching logic (which works)

    selector.invoke(someParam);
    // (B) can something like this ^ instead by calling the selector directly instead (does not work)
}

Run Code Online (Sandbox Code Playgroud)

细节

  • myDynamicFuncpublicmyFuncA+myFuncB也是public
  • 所有 …

blockchain ethereum solidity smartcontracts rsk

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