具有名称空间的xpath查询根元素

应用开发者

我正在尝试使用名称空间解决根元素,并提供对库xml-crypto的引用

我没有正确给出路径,请告知。目的是对文档进行签名,以便可以在标签后立即插入签名<samlp:Response

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="efedb3b0-909f-4b39-b8c0-57427ee8dc83" Version="2.0" IssueInstant="2019-11-08T15:34:51.272Z">

    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://www.example.com</saml:Issuer>

</samlp:Response>

nodeJS代码

var SignedXml = require('xml-crypto').SignedXml, fs = require('fs');
var sig = new SignedXml();

sig.addReference("//*[local-name(.)='samlp:Response']");

sig.signingKey = fs.readFileSync(__dirname + "/client.pem");
sig.computeSignature(xml);
fs.writeFileSync(__dirname + "/signed.xml", sig.getSignedXml());

尝试次数

sig.addReference("//samlp:Response");

错误:无法解析QName samlp

它的工作得很好https://www.freeformatter.com/xpath-tester.html虽然

克休斯

如果您希望取消/绕过命名空间,请更改

sig.addReference("//*[local-name(.)='samlp:Response']");

sig.addReference("//*[local-name()='Response']");

因为名称空间前缀samlp并非本地名称的一部分Response

有关XPath中名称空间的全面解答,请参阅XPath如何处理XML名称空间?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有名称空间的PostgresSQL xpath

对具有不同名称空间元素的单个根元素进行Xpath验证

具有名称空间的xpath表达式

XPath:选择具有名称空间的特定节点

XmlNodeList xPath具有名称空间以过滤出节点

Java中具有名称空间的XPath

元素具有名称空间时的JAXB解组问题

在具有名称空间前缀的元素内创建不带名称空间前缀的XML元素

使用Powershell在具有名称空间的XML中选择具有Xpath的属性

当我在根元素上有名称空间时,如何获得同级值?

具有名称空间的openxml

是否需要在根元素中声明XML名称空间,以便XPath查询可以匹配它?

XPath基于同级值获取值-具有名称空间

如何在具有名称空间前缀的TXMLDocument上使用XPath?

Azure Logic应用-具有名称空间前缀的xml的xpath

TSQL XML存在具有名称空间和IF-ELSE条件的查询

使用j查询解析具有名称空间的xml文件

Jaxb:Unmarshaller找不到具有名称空间和前缀的元素

如何从具有名称空间和架构的XML文档中提取元素的集合

JAXB检索具有名称空间的内部元素(返回空白)

带有谓词的xpath表达式可从具有名称空间的xml中获取节点值

如何使用python获取具有默认名称空间的xml文件中所有元素的xpath?

具有名称空间的CXF getNode,取消编组

XSLT选择具有名称空间的节点

具有名称空间的函数表达式

将具有名称空间的XML解析为字典

具有名称空间的PowerShell XML选择节点

具有名称空间的Rails多态关联

从具有名称空间的XBRL获取属性值