检查列表中的XML值

我有一个字符串列表,其中包含以下数字{“2”, “5”, “7”}。

我也有一个xml,如下所示

<Product>
   <Record>
      <Categories>
        <SubCategories>  
           <References>2</References>
           <References>1</References>
           <References>10</References>
        </SubCategories>
      </Categories>
      <Categories>
        <SubCategories>  
           <References>154</References>
            <References>75</References>
           <References>0</References>
        </SubCategories>
      </Categories>
      <Categories>
        <SubCategories>  
           <References>7</References>
        </SubCategories>
      </Categories>          
   </Record>
</product>

我想在一个单独的xml文件中检索所有类别,其refernce值至少包含上述列表中的一个值。

我不知道该怎么做

xmldoc.load(filepath) (xmldoc is the xmldocument of the file)
Dim CategoriesList = xmldoc.descendants("Record")
for each item in CategoriesList 
   Dim SubCategoriesList = item.descendants("Subcategories")
Next

请告诉我如何检查这些值并获得所需的类别。

解决方案:

您可以通过以下方法检查 “Categories “元素是否有 “References “的值。AnyHashSet(Of String)

Dim required = New String() {"1", "2", "3"}.ToHashSet()
Dim product = XDocument.Load("path-to-file")

Dim categories = product.Descendants("Categories").
    Where(Function(category) category.
        Descendants("References").
        Any(Function(r) required.Contains(r.Value))
    ).
    ToArray()

HashSet是为了减少数值的枚举量。HashSet.Contains 检查值只需一次操作O(1)。

给TA打赏
共{{data.count}}人
人已打赏
未分类

在python 3 docker镜像中安装CyLP的正确方法。

2022-9-8 14:18:21

未分类

用React前端设置Express后端。

2022-9-8 14:18:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索