我该如何验证我的XPath?
我正在使用Chrome Developers工具检查元素并形成我的XPath.我使用Chrome插件XPath Checker验证它,但它并不总能给我结果.什么是验证我的XPath的更好方法.
我也尝试使用Firebug来检查错误并使用FirePath进行验证.但Firepath还验证了XPath.
我的最后一个选择是使用Selenium WebDriver来确认我的XPath.
我有一个postgresql apt存储库gpg密钥的副本,并希望查看文件中的gpg密钥的详细信息.如果不将它导入钥匙圈,这可能吗?
我正在尝试将我的临时存储库推oss.sonatype.org送到中央存储库,但此操作正在失败,我正在跟踪异常
Event: Failed: Signature Validation
typeId signature-staging
failureMessage No public key: Key with id: (XXXXX) was not able to be located on http://keyserver.ubuntu.com:11371. Upload your public key and try the operation again.
Run Code Online (Sandbox Code Playgroud)
我曾经gbp为我生成公共密钥和私有密钥,我甚至使用以下命令将公钥发送到服务器
gpg --keyserver hkp://pool.sks-keyservers.net --send-keys EE539F98
Run Code Online (Sandbox Code Playgroud)
我仍然得到相同的例外.我交叉检查,只有一个Sub Key,不知道我还需要做什么来推公钥,所以这可以通过nexus找到
我有一个存储为文本的类型化的xml文档.因此,我使用公用表表达式将数据类型CONVERT转换为xml,以便能够使用XML方法:
WITH xoutput AS (
SELECT CONVERT(xml, t.requestpayload) 'requestpayload'
FROM TABLE t
WHERE t.methodid = 1)
SELECT x.requestpayload.query('declare namespace s="http://blah.ca/api";/s:validate-student-request/s:student-id') as studentid
FROM xoutput x
Run Code Online (Sandbox Code Playgroud)
查询工作,返回给我元素.但我只对价值感兴趣:
WITH xoutput AS (
SELECT CONVERT(xml, t.requestpayload) 'requestpayload'
FROM TABLE t
WHERE t.methodid = 1)
SELECT x.requestpayload.value('declare namespace s="http://blah.ca/api";/s:validate-student-request/s:student-id', 'int') as studentid
FROM xoutput x
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
'value()'需要一个单例(或空序列),找到'xdt:untypedAtomic*'类型的操作数
我用google搜索说XPATH/XQUERY需要在括号内和/或需要"[1]" - 两者都没有用.xml中只有一个student-id元素,但我想模式允许更多?
另外,我想要检索的元素值很多 - 有没有办法声明命名空间一次而不是每个方法调用?
我知道如何使用gpg验证这样:
$ gpg --verify somefile.sig
gpg: Signature made Tue 23 Jul 2013 13:20:02 BST using RSA key ID E1B768A0
gpg: Good signature from "Richard W.M. Jones <rjones@redhat.com>"
gpg: aka "Richard W.M. Jones <rich@annexia.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: F777 4FB1 AD07 4A7E 8C87 67EA 9173 8F73 E1B7 68A0
Run Code Online (Sandbox Code Playgroud)
但我真正想要做的是根据特定的公钥文件验证文件.
动机是从网站下载大文件并需要验证它们在使用之前没有被篡改的程序的一部分.该网站将包含文件和签名.该程序将附带GPG公钥.当我将文件上传到网站时,我将使用相应的私钥对其进行签名(显然不会分发).似乎该程序应该能够执行以下操作:
gpg --no-default-keyring --verify file.sig \
--is-signed-with /usr/share/program/goodkey.asc
Run Code Online (Sandbox Code Playgroud)
但是gpg …
gnuPG软件包gpg的加密工具在普通用户调用时使用GUI对话框提示密码,但是当root用户调用它时会在CLI上提示.即使在普通用户调用时,如何使用CLI.版本:GnuPG 1.4.12
我是XPath的新手.
我正在寻找一种方法来获取标签名称包含特定字符串的所有元素.
例如,如果我有如下所示的XML,我想获得标签名称包含单词'Name'的所有元素.也就是说,我希望获取以下元素:<SquareName>,<RectangleName>,和<ParallelogramName>.
我试过的一些组合name(),contains()等等,但没有奏效.请建议.
<Objects>
<Four-Sided>
<Square>
<SquareName>ABCD</SquareName>
<Length>4</Length>
<Height>4</Height>
<Colour>Blue</Colour>
</Square>
<Rectangle>
<RectangleName>EFGH</RectangleName>
<Length>10</Length>
<Height>6</Height>
<Colour>Brown</Colour>
</Rectangle>
<Parallelogram>
<ParallelogramName>WXYZ</ParallelogramName>
<Length>12</Length>
<Height>4</Height>
<Colour>Black</Colour>
</Parallelogram>
</Four-Sided>
</Objects>
Run Code Online (Sandbox Code Playgroud) 看看这些功能签名:
class Number {
public:
Number& operator++ (); // prefix ++
Number operator++ (int); // postfix ++
};
Run Code Online (Sandbox Code Playgroud)
前缀不带任何参数,但后缀确实如此.为什么?我认为我们可以用不同的返回类型识别它们.
c++ language-design operator-overloading prefix postfix-operator
我在这一行上有一个输入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) 这是为了向所有相似的(但是太具体的问题,成为一个近距离目标候选人)提供规范的问答,每周弹出一到两次.
我正在开发一个应用程序,需要解析一个包含表格的网站.由于派生用于抓取网页的XPath表达式是无聊且容易出错的工作,我想使用Firebug的XPath提取器功能(或其他浏览器中的类似工具).
示例输入如下所示:
<!-- snip -->
<table id="example">
<tr>
<th>Example Cell</th>
<th>Another one</th>
</tr>
<tr>
<td>foobar</td>
<td>42</td>
</tr>
</table>
<!-- snip -->
Run Code Online (Sandbox Code Playgroud)
我想提取第一个数据单元格("foobar").Firebug提出了XPath表达式
//table[@id="example"]/tbody/tr[2]/td[1]
Run Code Online (Sandbox Code Playgroud)
它适用于任何XPath测试器插件,但不适用于我自己的应用程序(未找到结果).如果我将查询减少到//table[@id],它会再次起作用.
出了什么问题?