gpt4 book ai didi

xml - Xpath 使用谓词在数据中匹配带有斜线的节点

转载 作者:行者123 更新时间:2023-12-03 17:07:06 29 4
gpt4 key购买 nike

使用 SoapUI 验证 xml 响应数据时出现问题。我将问题转移到 XPath Visualizer,以便我可以解决这些问题。

使用 Xpath 查询我想返回 b:账户事件具有子节点 的节点b:事件描述 值等于
'7.75000%10/30-11-10 $1602' 来自下面的 xml 摘录。

这是我的 xpath 查询:

//b:AccountActivity[b:ActivityDescription = "7.75000%10/30-11/10    $1602"]

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<RetrieveAccountActivityResponse xmlns="http://tempuri.org/">
<RetrieveAccountActivityResult xmlns:a="http://schemas.datacontract.org/2004/07/System.Collections.Generic" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:key xmlns:b="http://schemas.datacontract.org/2004/07/IntegratorSuite.DataContracts">
<b:CurrentPage>0</b:CurrentPage>
<b:Direction>Ascending</b:Direction>
<b:PageSize>50</b:PageSize>
<b:SortByParameter i:nil="true"/>
<b:TotalEntries>4</b:TotalEntries>
<b:TotalPages>1</b:TotalPages>
</a:key>
<a:value xmlns:b="http://schemas.datacontract.org/2004/07/IntegratorSuite.DataContracts">
<b:AccountActivity>
<b:AccountNumber>11111111</b:AccountNumber>
<b:AccountType>2</b:AccountType>
<b:ActivityDescription>7.75000%10/30-11/10 $1602</b:ActivityDescription>
<b:Amount>4.1200000000</b:Amount>
<b:CallPut_HasValue>false</b:CallPut_HasValue>
<b:CallPut_Value>ALL</b:CallPut_Value>
<b:CmpQualCode i:nil="true"/>
<b:Currency>USD</b:Currency>
<b:Cusip></b:Cusip>
<b:Description1/>
<b:Description2/>
<b:EntryType>DC</b:EntryType>
<b:ExpirationDate>9999-12-31T23:59:59.9999999</b:ExpirationDate>
<b:JournalDescription i:nil="true"/>
<b:NetAmount>-4.1200000000</b:NetAmount>
<b:Price>0.000000</b:Price>
<b:PrincipalAmount>-4.1200000000</b:PrincipalAmount>
<b:Quantity>0.000000</b:Quantity>
<b:RecordType>H</b:RecordType>
<b:RootSymbol i:nil="true"/>
<b:SecQualCode i:nil="true"/>
<b:SecurityDescription>Cash</b:SecurityDescription>
<b:SecurityGroupCategoryID>0</b:SecurityGroupCategoryID>
<b:SecurityGroupDescription i:nil="true"/>
<b:SecurityQuantityConversion>0</b:SecurityQuantityConversion>
<b:SecurityTypeCode i:nil="true"/>
<b:StockConversionFactor>0</b:StockConversionFactor>
<b:StrikePrice>0.0</b:StrikePrice>
<b:Symbol/>
<b:SymbolCusip i:nil="true"/>
<b:TableID i:nil="true"/>
<b:TradeDate_HasValue>true</b:TradeDate_HasValue>
<b:TradeDate_Value>2010-11-11T00:00:00</b:TradeDate_Value>
<b:TradeDetailID_HasValue>false</b:TradeDetailID_HasValue>
<b:TradeDetailID_Value>0</b:TradeDetailID_Value>
<b:TradeNumber i:nil="true"/>
<b:TransactionType>Interest Collected</b:TransactionType>
<b:UnderlyingCusip i:nil="true"/>
<b:UnderlyingSymbol i:nil="true"/>
</b:AccountActivity>
<b:AccountActivity>
...

似乎节点值中的正斜杠是导致匹配失败的原因。如果我从 xml 和 xpath 查询中删除它们,我会得到一个匹配项。在节点值中匹配斜线是否存在一些问题?似乎是一个基本问题,但我找不到答案。

最佳答案

事实证明,问题出在我发布的部分(正如 Alejandro 建议的那样)下面的 xml 文档中。正在查询的元素的命名空间 URI 稍后在文档中被重新定义为不同的 URI。一旦将第二个命名空间更改为不同的唯一名称,xpath 就会按预期工作。出于某种原因,在文档后面重新定义 URI 会导致某些 xpath 工具出现异常行为,而当所需节点上方的字段数据中有斜杠时,其他工具不会出现异常行为。感谢大家的意见。下次我将发布整个文件:)。

关于xml - Xpath 使用谓词在数据中匹配带有斜线的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197979/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com