小编Jen*_*rat的帖子

pyparsing问题

现在我刚刚开始使用pyparsing解析简单的后缀表达式.目前,我得到了这个:

from pyparsing import *
integer = Word(nums)
op = Word("+-*/^", max=1)
space = Word(" ")
expr = Word(nums)+space+Word(nums)+space+op
parsed = expr.parseString("3 4 *")
print parsed
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,它会打印:

Traceback (most recent call last):
  File "star_parse.py", line 6, in <module>
    parsed = expr.parseString("3 4 *")
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pyparsing-1.5.5-py2.6.egg/pyparsing.py", line 1100, in parseString
    raise exc
pyparsing.ParseException: Expected W:( ) (at char 2), (line:1, col:3)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python parsing expression pyparsing postfix-operator

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

用于选择 &lt;strong&gt; 标签后的文本的 xpath 语法

<div class="article_details">
<h1>Product name is</h1>
<div class="left">
<ul class="article_list">
<li>
<strong>art. nr.:</strong>
VS7896
</li>
<li>
<b>Shipping time</b>
: 1-3 Days
</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用过,//DIV[@class='left']/UL[1]/LI[1]但结果是“艺术编号:VS7896 ”。

请帮助我使用正确的 XPath 选择“ VS7896 ”。

xpath

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

更改docker的IP地址

我有一个docker问题:我尝试创建一个容器,但是当我执行时

docker run -i -t base /bin/bash   # everything doing good 
aptitude update
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

临时故障解决'archive.ubuntu.com'

我尝试更改IP地址,docker0但所有时间都失败了.

我的linux上的IP地址

 docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 7a:3c:fa:08:73:94 brd ff:ff:ff:ff:ff:ff
    inet 172.16.42.1
Run Code Online (Sandbox Code Playgroud)

我的resolv.conf:

# Generated by NetworkManager
nameserver 213.244.0.15
nameserver 213.244.0.16
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

linux docker

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

Go中的OpenPGP错误:"加密:请求的哈希函数不可用"

我正在使用open的openpgp包来制作一个简单的程序来加密短消息和ASCII装甲.我目前的代码是:

package main

import (
    "code.google.com/p/go.crypto/openpgp"
    "code.google.com/p/go.crypto/openpgp/armor"
    "fmt"
    "log"
    "os"
)

func main() {
    to, err := openpgp.NewEntity("John Smith", "comment", "john@example.com", nil)
    if err != nil {
        log.Fatal(err)
    }

    from, err := openpgp.NewEntity("John Smith", "comment", "john@example.com", nil)
    if err != nil {
        log.Fatal(err)
    }

    recipients := []*openpgp.Entity{to}

    armorer, err := armor.Encode(os.Stdout, "PGP MESSAGE", nil)
    if err != nil {
        log.Fatal(err)
    }

    defer armorer.Close()

    encrypter, err := openpgp.Encrypt(armorer, recipients, from, nil, nil)
    if err != nil {
        log.Fatal(err)
    } …
Run Code Online (Sandbox Code Playgroud)

hash cryptography gnupg go openpgp

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

使用DigestInputStream计算来自同一InputStream的多个校验和

我试图弄清楚如何基于相同的InputStream使用读取多个摘要(md5,sha1,gpg)DigestInputStream.根据我在文档中检查的内容,似乎可以通过克隆摘要来实现.有人可以说明一下吗?

我不想重新读取流来计算校验和.

java checksum md5 sha1 gnupg

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

XPath:使用单个路径表达式查询查找重复n次的节点

我正在练习编写一些XPath查询,并且只限于一个特定的查询。以下是我正在使用的示例文档:

<dept-db>
  <dept>
    <name>HR</name>
      <emp>
        <name>John</name>
        <country>USA</country>
      </emp>
      <emp>
        <name>Chris</name>
        <country>USA</country>
      </emp>
  </dept>
  <dept>
    <name>Technology</name>
    <emp>
      <name>Oliver</name>
      <country>UK</country>
    </emp>
    <emp>
      <name>Emily</name>
      <country>USA</country>
    </emp>
  </dept>
</dept-db>
Run Code Online (Sandbox Code Playgroud)

我要实现的是检索其文档中出现两次以上国家/地区的所有员工。我从一个简单的查询开始,即应该查找重复的查询:

<!-- language: lang-xsl -->
doc("emp.xml")//emp[preceding::emp/country=./country or following::emp/country=./country]
Run Code Online (Sandbox Code Playgroud)

尽管它返回了所有雇员(显然,奥利弗不应该在结果中列出)。

我是XPath的新手,不确定是否可以理解点'。'的概念。指定者权利。我希望上述查询的行为如下:遍历emp节点集,并进行每次检查,以检查文档中当前节点上方和下方的节点中是否有同一国家的雇员。

我会很感谢您的解释(使用点说明符执行GROUP BY类型的查询)并帮助使查询正常工作(除非使用单个路径表达式无法实现?)。如果很重要,我将结合使用eXide(eXist-db 2.1的一部分)和XQuery 3.0来执行查询。

xpath xquery exist-db

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

如何使用 GnuPG 加密字符串?

如何从命令行使用 gpg 加密给定的字符串?我将公钥存储在一个名为 pubkey.pub 的文件中,我想我可以简单地用类似的东西来做到这一点。

gpg --import "path/to/pubkey.pub" --encrypt "my string to encrypt"
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

背景:我必须使用 PHP exec 命令来加密给定的文本,因为我没有在服务器上安装 PHP 模块本身。

php encryption gnupg pgp exec

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

如何在XQuery 1.0中获得没有group by的最常见元素?

我想从列表中提取最常用的元素.

该列表$listOut由此类型的元素组成:

<Outcome>
  <Parameter>B</Parameter>
  <Value>15</Value>
  <MinVal>1</MinVal>
  <MaxVal>20</MaxVal>
</Outcome>
<Outcome>
  <Parameter>A</Parameter>
  <Value>15</Value>
  <MinVal>1</MinVal>
  <MaxVal>20</MaxVal>
</Outcome>
<Outcome>
  <Parameter>D</Parameter>
  <Value>43</Value>
  <MinVal>34</MinVal>
  <MaxVal>36</MaxVal>
</Outcome>
<Outcome>
  <Parameter>B</Parameter>
  <Value>4</Value>
  <MinVal>1</MinVal>
  <MaxVal>20</MaxVal>
</Outcome>
Run Code Online (Sandbox Code Playgroud)

我想要获得的是<Parameter>B</Parameter>,因为参数B存在2次,所以它是最常见的.

我不知道如何做到这一点我不能使用该group by声明.(仅限For,Let,Order By,Where,Return)

我想过这样的事情:

for $outOk in distinct-values( $listOut )
let $paramOk := //Outcome[Parameter eq $outOk]
order by count( //Outcome[Parameter eq $outOk] )
return $paramOk
Run Code Online (Sandbox Code Playgroud)

但它自然不起作用.

xml xquery

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

使用Gpg4win命令行使用公钥批量加密

我们正在建立我们的第一个EDI系统,该系统依赖于使用OpenPGP进行的传入和传出文件加密。使用我们的公钥加密的传入文件,我们可以使用Gpg4win的命令行选项使用私钥成功解密:

gpg --batch --passphrase "SOME_KEY" --decrypt-files "%decryptingdir%\*.pgp"
Run Code Online (Sandbox Code Playgroud)

现在,我需要做的是反向操作,并使用我们的合作伙伴公钥对传出文件进行加密。

我一直找不到使用公钥进行批处理加密的任何命令行文档。我以为是这样的:

gpg --batch --encrypt-files "%encryptingfir%\*.pgp" --key "SOME_KEY_PATH"
Run Code Online (Sandbox Code Playgroud)

谁能建议我如何通过命令行实现这种加密?

windows encryption gnupg batch-file openpgp

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

BaseX中如何将结果与更新操作一起返回?

我认识到使用 BaseX 客户端执行的 ( insert/ delete)-XQueries 始终返回空字符串。我发现这非常令人困惑或不直观。

有没有办法找出查询是否“成功”,而无需再次查询数据库(并使用可能有错误的“传递”逻辑,例如“如果我删除了一个节点,则 XML 中必须有 'oldNodeCount-1' 节点”) ?

xquery xquery-update basex

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