小编Jen*_*rat的帖子

从Xml中选择具有类似图形内容的所有路径

我有一个XML列,其中包含如下元素:

<Root>
    <Word Type="pre1" Value="A" />
    <Word Type="pre1" Value="D" />

    <Word Type="base" Value="B" />

    <Word Type="post1" Value="C" />
    <Word Type="post1" Value="E" />
    <Word Type="post1" Value="F" />
</Root>
Run Code Online (Sandbox Code Playgroud)

那个模型类似于:

在此输入图像描述

并希望在MSSQL中使用XQuery选择所有可能的路径,以获得类似这样的结果:

ABC ABE ABF DBC DBE DBF

或者像:

<Root>
    <Word Type="pre1" Value="A" />
    <Word Type="pre1" Value="D" />

    <Word Type="pre2" Value="G" />
    <Word Type="pre2" Value="H" />

    <Word Type="base" Value="B" />

    <Word Type="post1" Value="C" />
    <Word Type="post1" Value="E" />
    <Word Type="post1" Value="F" />
</Root>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

结果如下:

AHBC AHBE AHBF DHBC DHBE DHBF AGBC AGBE AGBF …

xml sql xquery sql-server-2008

4
推荐指数
1
解决办法
312
查看次数

Git GPG错误签名标签

在谈到Git时,我有点像新秀.所以我决定阅读Scott Chacon的Pro Git.BTW好书,强烈推荐它.

无论如何得到了关于签名标签的部分.要使用GPG对标签进行签名,您必须设置私钥.但是,当我跑:

git tag -s v1.6 -m "my signed 1.6 tag"
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: error loading `iconv.dll': The specified module could not be found.

gpg: please see http://www.gnupg.org/download/iconv.html for more information
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag
Run Code Online (Sandbox Code Playgroud)

所以,我完成了错误消息告诉我要做的事情,然后转到链接并按照说明进行操作.我将iconv.dll复制到包含gpg.exe(\ Git\bin)的文件夹中.再次执行命令并得到:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag" …
Run Code Online (Sandbox Code Playgroud)

git gnupg

4
推荐指数
1
解决办法
5075
查看次数

如何插入关系表

我在教自己SQL Server是一种爱好.我一直坚持将数据插入关系表,我理解关系表的想法.

我想知道是否有人可以告诉我如何获得先前插入的行存储的标识它作为变量在其余查询中用作FK.

这是我的TSQL代码:

CREATE PROCEDURE [dbo].[q_insertuser]
@username varchar(50),
@hash varchar(MAX),
@name varchar(50),
@email varchar(MAX),
@address varchar(MAX),
@city varchar(50),
@postcode varchar(50)

AS
--INSERT USERNAME
    INSERT INTO tab_user
    (username)
    VALUES
    (@username)

    --Selects the Userid to be used
DECLARE @UID INT
SET @UID = INT FOR SELECT *
                     FROM tab_user
                     WHERE (userid = SCOPE_IDENTITY())

--INSERT PASSWORD
    INSERT INTO tab_pass
    (userid, hash)
    VALUES
    (@UID ,@hash)

--INSERT Address
    INSERT INTO tab_contact
    (userid,name, email, address, city, postcode)
    VALUES
    (@UID ,@name, @email, @address, @city, @postcode)
--RETURN …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

4
推荐指数
1
解决办法
864
查看次数

递归地包装元素

假设我有一个元素<x>x</x>和一些空元素(<a/>, <b/>, <c/>),我想一次包装第二个内部的第一个元素,结果<c><b><a><x>x</x></a></b></c>.当我不知道空元素的数量时,我该怎么做呢?

我可以

xquery version "3.0";

declare function local:wrap-up($inner-element as element(), $outer-elements as element()+) as element()+ {
    if (count($outer-elements) eq 3)
    then element{node-name($outer-elements[3])}{element{node-name($outer-elements[2])}{element{node-name($outer-elements[1])}{$inner-element}}}
    else 
        if (count($outer-elements) eq 2)
        then element{node-name($outer-elements[2])}{element{node-name($outer-elements[1])}{$inner-element}}
        else
            if (count($outer-elements) eq 1)
            then element{node-name($outer-elements[1])}{$inner-element}
            else ($outer-elements, $inner-element)
};

let $inner-element := <x>x</x>
let $outer-elements := (<a/>, <b/>, <c/>)

return 
    local:wrap-up($inner-element, $outer-elements)
Run Code Online (Sandbox Code Playgroud)

但有没有办法通过递归来做到这一点,而不是降序和解析,而是提升和构建?

recursion xquery xquery-3.0

4
推荐指数
1
解决办法
43
查看次数

如何仅知道其指纹就获得公共 OpenPGP 密钥?

我只有一个 OpenPGP 密钥的公共指纹。我不知道密钥 ID 或几乎任何其他东西。

我怎样才能得到相应的公钥?有没有在线服务可以做到这一点?

cryptography gnupg openpgp public-key

4
推荐指数
1
解决办法
1850
查看次数

如何在XQuery中创建没有else的if语句?

我希望在XQuery中创建一个if没有else部分的语句.

例如:

<results>
   { 
   if (5 = 5) then
       <foo/>
   }
<results>
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

我也试过这个:

<results>
   { 
   if (5 = 5) then
       <foo/>
   else
       return
   }
<results>
Run Code Online (Sandbox Code Playgroud)

虽然编译,但在运行时不起作用!

xpath xquery saxon xquery-3.0

4
推荐指数
1
解决办法
2988
查看次数

使用BouncyCastle和GnuPG 2.1的`pubring.kbx`文件

我正在尝试使用BouncyCastle和PGP2来读取公钥.问题是,因为GnuPG 2.1存储在pubring.kbx而不是pubring.gpg.这导致IOExceptionpublic key ring doesn't start with public key tag: tag 0x0

知道我是否以及如何使用BC与GnuPG 2.1?

java bouncycastle gnupg openpgp

4
推荐指数
2
解决办法
1709
查看次数

为什么XQuery表达式返回错误的元素数?

我想返回的每时间表L1和L0项目的数量也警告的数量,也按计划.

这实际上是一个"数量如果"的情况.

我尝试了以下XQuery,它可以很好地计算L1,L0和警告,但会计算所有警告,而不是仅计算所有警告value = "yes".

xquery version "3.0";

let $nl := "&#10;"
let $quote := "&#34;"
let $pipe := "&#124;"
let $nodecount := 0

for $profiles in doc("maik test.xml")/PROFILE
for $schedule in $profiles/SCHEDULE
let $schedulename := $schedule/@name
group by $schedulename
return ($nl, 
$schedulename, $pipe, "L0 count:", count($schedule/L0),
$pipe, "L0 Warnings:", count($schedule/L0/ATTRIBUTE[@NAME = "Warnings"]/VALUE/string() = "Yes"),
$pipe, "L1 count:", count($schedule/L0/L1),
$pipe, "L1 Warnings:", count($schedule/L0/L1/ATTRIBUTE[@NAME = "Warnings"]/VALUE/string() = "Yes"))
Run Code Online (Sandbox Code Playgroud)

示例XML:

<?xml version="1.0" encoding="UTF-8"?>
<PROFILE name="profile1">
    <SCHEDULE name="schedule1">
        <L0> …
Run Code Online (Sandbox Code Playgroud)

xml xquery count xml-parsing xquery-3.0

4
推荐指数
1
解决办法
113
查看次数

如何使用PHP解密对称加密的OpenPGP消息?

我有一个OpenPGP消息,看起来像这样在文件中给我:

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.9 (MingW32)

jA0EAgMCtCzaGHIQXY9g0sBnAeDOQ9GuVA/uICuP+7Z2dnjNCLgRN0J/TzJs1qcW
aJYBTkH5KQCClCxjwTYbHZCox1sENfIS+KxpCKJQqAX3SNEFm0ORNE6RNwEgb1Zj
uOdIw8auxUsjmQKFLAcZIPKjBjyJqSQVfmEoteVn1n+pwm8RdIZevCHwLF2URStB
nBVuycaxcaxcaxcxccxcxacqweqweqwe123fsMqQPaTusOBGpEQrWC9jArtvYEUpY
aNF6BfQ0y2CYrZrmzRoQnmtnVu10PagEuWmVxCucyhVwlthVgN0iBog9jhjliQkc
rrDTupqB4IimMEjElGUHtkuvrCQ0jQnOHEAJmmefMDH0NkYKGd5Ngt21I5ge5tob
/uBjHKMxjNgg1nWfg6Lz4jqoKe/EweuEeg==
=+N9N
-----END PGP MESSAGE-----
Run Code Online (Sandbox Code Playgroud)

我想,并给了一个15个字符的密码来解密它.但我真的不知道用PHP解密文件.我看一下PHP的GnuPG手册页 ,在gnugpg_decrypt()示例下它给出了这段代码:

$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
Run Code Online (Sandbox Code Playgroud)

所以看看这个功能gnupg_adddecryptkey,它提到我需要一个指纹.实际上是什么?我在哪里可以得到它?

php encryption gnupg openpgp

4
推荐指数
2
解决办法
7456
查看次数

如何处理临时 apt-key adv 失败?

我有一个 dockerfile 可以动态添加 OpenPGP 密钥。问题是密钥服务器hkp://pgp.mit.edu:80有时无法响应。我能做些什么来避免这种浪费时间的失败?

debian apt gnupg openpgp docker

4
推荐指数
1
解决办法
665
查看次数