当前位置: 首页 > 知识库问答 >
问题:

基于另一个节点值选择节点值的Xpath

段干玺
2023-03-14

我是Xpath的新手。

假设我有一个xml目录可以将商品导入电子商店:

<categories>
    <category id="26">Jackets</category>
    <category id="27">Jeans</category>
    <category id="28">Sweaters</category>
    <category id="29">Shirts</category>
    ...
</categories>

<goods>
    <good id="123">
        <categoryId>26</categoryId>
        <label>D&G</label>
        <color>Black</color>
        <size>M, XL</size>
    </good>
    ...
<goods>

目录的第一部分是商品类别列表,第二部分是商品列表。每种商品都有一个<代码>

从上面的代码中,我需要得到这样一个好的描述:类别:夹克;标签:D

标签、颜色和尺寸可直接从<代码>

所以我的目标是选择的值

非常感谢。


共有2个答案

穆阳嘉
2023-03-14

假设您已经从分类ID元素中检索到值26,选择其中包含“夹克”的元素的XPath将遵循以下行:

//categories/category[@id = "26"]

根据所使用的语言,可能需要使用字符串串联将26合并,或者在XSLT中,可以直接在表达式中使用变量:

//categories/category[@id = $categoryId]

(然而,在XSLT中,更好的方法是使用键)。

闾丘霖
2023-03-14

要选择与id为123的良好类别关联的类别,请使用以下XPath:

//categories/category[@id = //goods/good[@id='123']/categoryId]
 类似资料:
  • 如何能够基于另一个同级节点的属性选择节点属性?我想要实现的是从所有节点中提取链接(href值),这些节点后跟具有属性class=“body table news loss”的节点跨度,即选择器应该返回https://finance.yahoo.com/news/inspiremd-announces-planned-recapitalization-120000752.html在下面的示例中。我试

  • 对于下面的XML,我正在尝试根据属性和节点值提取节点。 基于属性class=pass和h1包含('objectives'),我试图提取以下输出。 “目标”是节点值字符串“1任务目标”的一部分 1任务目标1目标2 下面是我正在尝试的XPath表达式。然而,这并没有产生任何输出。你能指出我做错了什么吗? 谢谢

  • 我想通过像delete*这样的查询删除整个节点,其中user_id=“-KTruPWrYO9WFj-TF8Ft”如何在firebase上实现?

  • 我很难使用下面的用例。 以下是XML: 我想要实现的是基于节点

  • 我正在尝试处理这个XML文件,我想根据最新的节点值删除所有匹配的节点。在以下示例中,最新节点值为“${DELETE}”,最新节点值将始终为“${DELETE}”,并且该节点将始终位于XML文件的底部。 示例: 预期产出为: