c# - XML 使用 SelectNodes 来获取具有空值子节点的节点
问题描述
目前我们得到一个节点列表,其中特定节点具有 0.00、0 或 0,00 值。
hoofddocument.SelectNodes("//Product[./polispremie_1[.='0,00' or .='0' or .='0.00' ]]")
但如果“polispremie_1”节点为空,我们也希望包含 Product 节点。
我宁愿在当前的 xpath 中添加一些东西。
我试过添加 ' or .= null ' 但这不起作用。
xml 示例:
<Products>
<Product>
<polispremie_1/>
</Product>
<Product>
<polispremie_1>0</polispremie_1>
</Product>
</products>
在此示例中,第一个产品的 polispremie_1 具有空值。我想通过上述查询获得两者,但我只获得第二个产品。
解决方案
一个 VB 例子
Dim testXE As XElement = <Products>
<Product>
<polispremie_1/>
</Product>
<Product>
<polispremie_1>0</polispremie_1>
</Product>
<Product>
<polispremie_1>0.0</polispremie_1>
</Product>
</Products>
Dim ie As IEnumerable(Of XElement)
Dim d As Decimal
ie = From el As XElement In testXE...<polispremie_1>
Where (Decimal.TryParse(el.Value, Globalization.NumberStyles.Any,
Globalization.CultureInfo.InvariantCulture,
d) AndAlso d = 0) OrElse el.Value = ""
Select el
'look at results in ie
推荐阅读
- spring-boot - Spring Cloud Zuul:如何处理Service内部的授权?
- python - 使用相同的数据框填充多个表
- java - 使用请求将数据从一个 JSP 传输到另一个 JSP 文件
- javascript - 如何在网页上找到鼠标的准确位置
- javascript - 使用 AWS Lambda + API Gateway 生成矢量地图切片 - 出现“格式错误的 Lambda 代理响应”错误
- c++ - 在 Visual Studio 2019 中添加 -fno-exceptions 标志
- reactjs - 如何解决:错误:重新渲染过多。React 限制渲染次数以防止无限循环
- oval - 列表中无效对象的索引
- python - 响应完成后烧瓶重定向页面
- docker - Mercure Docker 忽略来自 docker-compose 的 JWT_KEY 导致的 JWT 签名无效