小编Jen*_*rat的帖子

如果元素存在且非空,如何判断使用XPath?

我在这一行上有一个输入XML:

<Holding id="12">
    <Policy>
        <HoldingForm tc="1">Individual</HoldingForm>
        <PolNumber>848433</PolNumber>
        <LineOfBusiness tc="1">Life</LineOfBusiness>
        <CarrierCode>67644</CarrierCode>
    </Policy>
</Holding>
Run Code Online (Sandbox Code Playgroud)

我对此XML的操作取决于if <PolNumber>(它是模式中的可选元素)是否具有值.我正在使用Mule 3.3 xpath求值程序执行此操作,我的XPath表达式看起来像这样:

<expression-filter expression="#[xpath('//acord:Holding/acord:Policy/acord:PolNumber').text != empty]"/> 
Run Code Online (Sandbox Code Playgroud)

只要<PolNumber>元素存在或者<PolNumber/>是空元素,这就可以正常工作.但如果<PolNumber>不存在,则上面的表达式抛出异常.

我试着用XPath的布尔函数,但返回true<PolNumber/>.有没有更好的方法来检查元素是否存在且非空?

编辑:

这是我的mule配置中命名空间管理器的配置

<xm:namespace-manager includeConfigNamespaces="true">
    <xm:namespace prefix="acord" uri="http://ACORD.org/Standards/Life/2" />
    <xm:namespace prefix="soap" uri="http://schemas.xmlsoap.org/soap/encoding/" />
</xm:namespace-manager>
Run Code Online (Sandbox Code Playgroud)

xml xpath mule

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

OCaml中HttpRequest的最佳模块是什么

我希望使用OCaml访问Yahoo Finance API.从本质上讲,它只是一堆HTTP请求来获取雅虎财经的报价.

我应该使用哪个模块?

我希望有异步HTTP请求.

ocaml ocaml-batteries

19
推荐指数
1
解决办法
4425
查看次数

解密目录中的多个OpenPGP文件

我在目录中有几百个gpg加密文件,格式为filename.xyz.gpg,其中"xyz"是一些任意扩展名.我需要解密所有文件以生成filename.xyz解密,这样我就不必手动输入每个文件的密码.

我已尝试以下目录"测试":

for file in 'ls Testing'; do (echo <password>|gpg --passphrase-fd 0 -d $file 
--output     $file.decrypted);
Run Code Online (Sandbox Code Playgroud)

我结束了命令提示>,没有任何反应.

我的语法有什么问题?没有bash shell循环,有没有更有效的方法来做到这一点?

encryption bash gnupg

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

i ++比++ i效率低,如何展示?

我试图通过示例显示前缀增量比后缀增量更有效.

理论上这是有道理的:i ++需要能够返回未增加的原始值并因此存储它,而++我可以返回增量值而不存储先前的值.

但是有一个很好的例子可以在实践中证明这一点吗?

我尝试了以下代码:

int array[100];

int main()
{
  for(int i = 0; i < sizeof(array)/sizeof(*array); i++)
    array[i] = 1;
}
Run Code Online (Sandbox Code Playgroud)

我使用gcc 4.4.0编译它,如下所示:

gcc -Wa,-adhls -O0 myfile.cpp
Run Code Online (Sandbox Code Playgroud)

我再次这样做,后缀增量更改为前缀增量:

for(int i = 0; i < sizeof(array)/sizeof(*array); ++i)
Run Code Online (Sandbox Code Playgroud)

在两种情况下,结果都是相同的汇编代码.

这有些出乎意料.似乎通过关闭优化(使用-O0)我应该看到显示概念的差异.我错过了什么?有更好的例子来展示这个吗?

c++ optimization prefix postfix-operator

15
推荐指数
3
解决办法
8836
查看次数

在签名提交期间防止git要求GnuPG密码

Git总是要求我在使用时签署提交时输入密码以解锁我的密钥.

git commit -S -m 'message'
Run Code Online (Sandbox Code Playgroud)

如何在缓存中存储密码,以便在签署提交时不必每次都输入密码

git github gnupg

14
推荐指数
3
解决办法
4330
查看次数

让GPG解密工作在Java(Bouncy Castle)

首先让我说我对这一切都是新手.我想要做的是使用Java中的gpg来解密加密文件.

我成功完成了什么:

  • 有同事使用我的公钥和他的私钥加密文件并成功解密它.

  • 走了另一条路

  • 让另一位同事尝试解密一个不适合他的文件:失败(如预期的那样)

我的密钥是这样生成的......

(gpg --version告诉我我正在使用1.4.5而我正在使用Bouncy Castle 1.47)

gpg --gen-ley

选择选项"DSA和Elgamal(默认)"

填写其他字段并生成密钥.

该文件使用我的公钥和另一个密钥加密.我想解密它.我编写了以下Java代码来完成此任务.我正在使用几种弃用的方法,但我无法弄清楚如何正确实现使用非弃用版本所需的工厂方法,所以如果有人对我应该使用的那些实现有一个想法,那将是一个不错的奖金.

    Security.addProvider(new BouncyCastleProvider());

        PGPSecretKeyRingCollection secretKeyRing = new PGPSecretKeyRingCollection(new FileInputStream(new File("test-files/secring.gpg")));
        PGPSecretKeyRing pgpSecretKeyRing = (PGPSecretKeyRing) secretKeyRing.getKeyRings().next();
        PGPSecretKey secretKey = pgpSecretKeyRing.getSecretKey();
        PGPPrivateKey privateKey = secretKey.extractPrivateKey("mypassword".toCharArray(), "BC");

        System.out.println(privateKey.getKey().getAlgorithm());
        System.out.println(privateKey.getKey().getFormat());

        PGPObjectFactory pgpF = new PGPObjectFactory(
    new FileInputStream(new File("test-files/test-file.txt.gpg")));
        Object pgpObj = pgpF.nextObject();
        PGPEncryptedDataList encryptedDataList = (PGPEncryptedDataList) pgpObj;

        Iterator objectsIterator = encryptedDataList.getEncryptedDataObjects();

        PGPPublicKeyEncryptedData publicKeyEncryptedData = (PGPPublicKeyEncryptedData) objectsIterator.next();
        InputStream inputStream = publicKeyEncryptedData.getDataStream(privateKey, "BC");
Run Code Online (Sandbox Code Playgroud)

因此,当我运行此代码时,我了解到我的密钥的算法和格式如下:

算法:DSA格式:PKCS#8

然后它在最后一行打破:

Exception in thread "main" org.bouncycastle.openpgp.PGPException: error …
Run Code Online (Sandbox Code Playgroud)

java bouncycastle openpgp elgamal

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

未找到Android Source Repo GPG公钥

我正在运行Linux Mint 14并尝试下载android源代码.我按照设置环境的说明进行操作,当我尝试使用repo获取源代码时,出现以下错误.

...
 * [new tag]         v1.9.4     -> v1.9.4
 * [new tag]         v1.9.5     -> v1.9.5
 * [new tag]         v1.9.6     -> v1.9.6

object e76efdd7b342577c40aa271fa5ded9d66a783a9b
type commit
tag v1.12.4
tagger Conley Owens <cco3@android.com> 1380645867 -0700

repo 1.12.4

gpg: Signature made Tue 01 Oct 2013 09:44:27 AM PDT using RSA key ID 692B382C
gpg: Can't check signature: public key not found
error: could not verify the tag 'v1.12.4'
Run Code Online (Sandbox Code Playgroud)

我已经尝试从指令导入公钥,尝试生成我自己的GPG密钥,以及符号链接目录〜/ .gnupg和〜/ .repoconfig/gnupg两种方式,我仍然得到相同的错误.我也试图删除〜/ .repoconfig和〜/ .gnupg但仍然没有运气.

任何帮助,将不胜感激.

android gnupg repository openpgp

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

如何在XPath中获取序列的最后一个元素?

在Ruby中,我们可以访问具有负数的数组,array[-1]以获取数组中的最后一个对象.我如何使用XPath执行此操作?

我不能这样做:

result = node.xpath('.//ROOT/TAG[-1]/KEY_NAME')
Run Code Online (Sandbox Code Playgroud)

我在Stack Overflow上找到了一个解决方案,但这是一个只更改上限来获取元素的查询.这可以返回最后一个项目或最后一个项目并且是流行的.

如果我想只获得array[-2]Ruby中的流行元素怎么办?

ruby xpath nokogiri

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

真实世界的前/后顺序树遍历示例

我理解预订,有序和后序树遍历算法就好了.(参考).我理解了一些用法:按顺序遍历二进制搜索树,预先克隆树.但我不能为我的生活提出一个现实世界的任务,我需要后序遍历才能完成.

能给我举个例子?并且:你能为我提供更好的预订遍历用途吗?

编辑:除了表达式树和RPN之外,还有谁可以给​​我一个例子吗?这真的是所有的后期订单都有用吗?

algorithm binary-tree tree-traversal postorder

11
推荐指数
1
解决办法
7246
查看次数

如何在Docker容器中使用GnuPG,因为它缺少熵?

我需要对apt存储库进行docker化.其中的包需要签名,目前已完成 aptly publish snapshot -distribution="stable" -gpg-key="<key id>" my-snapshot

在此之前,需要使用创建密钥gpg --gen-key.

但是这样私有密钥将在docker镜像中创建,这似乎不是一个好习惯.此外,id甚至不起作用; 跑步gpg --gen-key --batch <gpg.in卡住了:

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 284 more bytes)
Run Code Online (Sandbox Code Playgroud)

我不知道是否甚至可以在docker容器中生成一个gpg密钥,即使它是,也可能不是一个好主意.

有没有办法通过外部密钥签署回购的内容?

gnupg entropy openpgp docker

10
推荐指数
1
解决办法
4613
查看次数