【发布时间】:2016-11-12 14:46:28
【问题描述】:
我有这个包含证书及其属性的 xml。这是我在其上运行提取查询的 xml
<Certificates>
<CertificateAndChain>
<Certificate>
<FriendlyName />
<Thumbprint>EE8B375347FCADDC25547FDDF61866E07D5B6A71</Thumbprint>
<SerialNumber>256BB11DB5BE889E46EBCD85608DA849</SerialNumber>
<Version>3</Version>
<SignatureAlgorithm>sha1RSA</SignatureAlgorithm>
<Issuer>CN=certname</Issuer>
<Subject>CN=certname</Subject>
<NotAfter>2040-09-26T18:30:00Z</NotAfter>
<NotBefore>2016-09-27T18:30:00Z</NotBefore>
<IsVerified>false</IsVerified>
</Certificate>
。 . .(续)...
我已经为此 xml 编写了另一个测试,该测试需要提取所有即将在未来 10 天内过期的证书的指纹。 作为测试的一部分,我将提取查询编写为:
<XPath2ResponseParameter Name="TPName"><ExtractionQuery><![CDATA[string(//CertificateAndChain/Certificate[NotAfter[text() <= (current-dateTime() + xs:dayTimeDuration('P10D'))]]/Thumbprint)]]></ExtractionQuery></XPath2ResponseParameter>
测试也在 xml 文件中。但是,当我运行测试时,我得到了这个异常: string() 的第一个参数不允许包含多个项目的序列。 这可能是因为 xml 中存在多个证书元素。所以,我不知道如何提取所有不符合上述条件的指纹(可能不止 1 个,我需要提取所有指纹)
谁能帮我解决这个问题?
【问题讨论】: