0

我想从 XML 导入产品(类别)。

类别元素是<type>RCA</type>“RCA”是类别的地方。

我想要多个类别。

对于我使用的单个类别"/product[contains(type, "RCA")]",尽管它有效,但它给了我所有带有单词“RCA”的类别。

另外如何过滤多个类别?例如,当我这样做时:

"/product[contains(type, "RCA" or type, "XLR" or "DVI" or "HDMI")]"

...那没起效。

4

2 回答 2

0

这个答案我收集到你想使用类似的东西:

/product[contains(type, "RCA") or contains(type, "someOtherType")]

未经测试,但值得一试。

于 2021-05-09T00:09:07.360 回答
0

尝试这个:

/product[type[contains('RCAXLRDVIHDMI',.)]]

这使用包含相反的方式。

/product(单斜杠)可能有问题。这通常只会选择根元素。如果您只想要 child::product 使用它而不使用任何斜杠 product./product. 如果您希望所有后代使用.//productdescendant::product

如果您有更多类别,则 XPath 更安​​全,周围有空格,它将仅匹配这些类型,而不匹配彼此内部的类型,例如 ONE 和 ONES

/product[type[contains(' RCA XLR DVI HDMI ',concat(' ',.,' '))]]
于 2021-05-09T09:23:17.380 回答