【发布时间】:2020-12-14 03:46:34
【问题描述】:
对于上下文,我可以为一个名为“模型”的属性为 ~1500 个名为“块”的对象设置约 300 个值,并且我尝试获取没有双胞胎的模型列表。
XML 文件如下所示:
<blocks>
<block name="toto1">
<property... />
<property name="Shape" value="New" />
<property ... />
<property name="Model" value="xxx" />
<property ... />
</block>
<block name="toto2">
<property name="Shape" value="New" />
<property ... />
...
<property name="Model" value="yyy" />
<property ... />
</block>
<block name="toto3">
<property ... />
<property name="Shape" value="New" />
<property ... />
<property name="Model" value="xxx" />
<property ... />
<property ... />
</block>
<block name="toto4">
<property ... />
<property name="Shape" value="Old" />
<property name="Model" value="555" />
<property ... />
</block>
<block name="toto5">
<property ... />
<property name="Shape" value="New" />
<property name="Model" value="zzz" />
<property ... />
</block>
</blocks>
我通过在具有名称属性='形状'=新的节点父节点之前选择具有名称属性='模型'的值属性的值......嗯......看看我的路径^^ '他工作!但还不够
//block/property[@name="Shape"][@value="New"]/parent::block/property[@name="Model"]/@value
我需要这样做,否则我会得到意想不到的“模型”值.. 就像'形状=旧'。 {xxx,yyy,xxx,555,zzz}
所以我得到 {xxx,yyy,xxx,zzz} 但我想要 {xxx,yyy,zzz}
我得到一个包含 1500 个模型价值元素的列表,而我确实有大约 300 个独特的模型...
所以我使用带有临时数组的 JS 来避免双胞胎
if(!shapes[Modelvalue]){shapes[shapes.length]=Modelvalue; shapes[Modelvalue]=[shapes.length];}
但是我只能使用 Xpath 吗? 请求需要 4 秒,因为块数..
【问题讨论】:
-
block/property是如何处理 HTML 的 - 请注意,stackoverflow 是一个严格的仅限英文网站 -
il n'y aucun 属性
model。 il y a des attributsnamepouvant avoir la valeur "model" déjà que ta question est confuse, si en plus tu using un vocabulaire ambigu, on va pas s'en sortir。 Donc tu veux récuprer toutes lesoccunces différentes des élements xml dont l'attribut estvalueayantname="Model"。 que vient faire Shape" dans cette histoire ? -- et comme le fait remarquer Bravo stackoverflow est un site ou tout le monde doit s'exprimer en Anglais -
我已经翻译了 ^^ 但我希望什么是不稳定的:s thx for return !
标签: javascript xml xpath