我从我的网络商店API调用中获取XML,其结构非常像下面的示例:
<Customers>
<Customer>
<Username>userOne</Username>
<Params>
<Param>
<Id>111</Id>
<Name>Param1</Name>
<Value><![CDATA[Param 1 is on]]></Value>
</Param>
<Param>
<Id>112</Id>
<Name>Param2</Name>
<Value><![CDATA[OFF]]></Value>
</Param>
</Params>
</Customer>
<Customer>
<Username>userTwo</Username>
<Params>
<Param>
<Id>111</Id>
<Name>Param1</Name>
<Value><![CDATA[Param 1 is on]]></Value>
</Param>
<Param>
<Id>112</Id>
<Name>Param2</Name>
<Value><![CDATA[OFF]]></Value>
</Param>
</Params>
</Customer>
<Customer>
<Username>userThree</Username>
<Params>
<Param>
<Id>112</Id>
<Name>Param2</Name>
<Value><![CDATA[ON]]></Value>
</Param>
</Params>
</Customer>
其中有更多的参数,数量取决于许多外部因素。我正在尝试获取用户名,当id“111”和id“112”的值是我要查找的值时Customers/Customer[Params/Param[Id/text()='111']/Value/text()='Param 1打开][Params/Param[Id/text()='112']/Value/text()='OFF']/Username/text()
上述代码按预期返回“userOne”和“userTwo”。
问题是,Id“111”要么有值“Param 1 is on”要么什么都没有,如果没有值,它就不会显示在XML中。所以我需要一个表达式来检查id为“111”的节点是否不存在,id为“112”的值是否为“ON”。
不幸的是,Xpath对我来说真的很新,我无法找到一种方法来具体检查节点是否不存在。
XPathcount(expr)
可用于检查是否存在条件
Customers/Customer[count(Params/Param[Id/text()='111' and Value/text()='Param 1 is on']) = 0 and Params/Param[Id/text()='112']/Value/text()='ON']/Username/text()
因此,这一部分检查该节点是否不存在计数(Params/Param[Id/text()='111'和Value/text()='Param 1在'])=0
或计数(Params/Param[Id/text()='111')=0
并且这部分检查其他预期条件
Params/Param[Id/text()='112']/Value/text()='ON'
应用于样本返回:
userThree
根据定义,当强制转换为布尔值时,节点集为true,并且只有当它包含元素时才为true(https://www.w3.org/TR/xpath-31/#dt-ebv)。这样,值元素的存在性检查可以如下所示
fn:boolean(Customers/Customer[Params/Param[Id/text()='111']/Value)
或者如果你想把它作为第三种选择包括在你的支票里
Customers/Customer[Params/Param[Id/text()='111' and not ./Value]
我有一种感觉,我在这件事上完全错了。但无论如何。 我有一个sql数据库,它本质上是一个有目的的非规范化表,我构造这个表是为了使这项任务对我来说更容易,所以我可以从一个表中获取内容。 我有一张成双成对的桌子,像这样: 等等 所以对于我的neo4j图数据库,我希望每个用户ID作为一个节点,其他的东西不是太重要,但基本上是关系中的东西。 我只希望每个用户有一个节点,所以我的感觉是,如果我这样做: 当我们
调用web3.eth.isMining()方法来检查节点是否在进行挖矿。 调用: web3.eth.isMining([callback]) 返回值: 一个Promise对象,挖矿时其解析值为true,否则为false。 示例代码: web3.eth.isMining().then(console.log); > true
问题内容: 如何使用Node的驱动程序检查ObjectID是否有效 我试过了 : 但是我不断收到异常,而不是对或错。(例外只是一个“ throw e; // process.nextTick错误,或“第一次滴答”中的“ error”事件” 问题答案: 不知道函数来自哪里,但是不在node-mongodb- native中 。 如果要检查由24个十六进制字符组成的字符串,则可以使用此正则表达式。 取
web3.eth.isSyncing()方法用来检查节点当前是否已经与网络同步。 调用: web3.eth.isSyncing([callback]) 返回值: 一个Promise对象,其解析值为Object或Boolean。如果节点尚未与网络同步, 则返回false,否则返回一个同步对象,具有以下属性: startingBlock - Number: 同步起始块编号 currentBlock
我正在处理一个Spring BootNeo4j应用程序 在保存新密码之前,如何编写自定义密码来检查Priviledge是否存在 UserRole域:@NodeEntity公共类UserRole{ 特权域:
问题内容: 我有一个非常简单的程序,你可以用你的,, ,和键进行拍摄。所有的拍摄和移动动画都可以工作,但是我不确定如何实现一个系统,在该系统中,程序会不断检查子弹是否已碰到节点(例如圆圈)。 我本以为可以存储所有项目符号,然后使用来检查项目符号是否接触到节点;但是我觉得那样会减慢程序的速度,并且子弹可以在等待再次执行时通过它们。 任何建议都会有所帮助。 代码:Pastebin 问题答案: 您可以使