Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XPath帮助。获取具有变量名的childnode_Xml_Xpath - Fatal编程技术网

Xml XPath帮助。获取具有变量名的childnode

Xml XPath帮助。获取具有变量名的childnode,xml,xpath,Xml,Xpath,我有以下XML: <StatsContainer> <Variant1>0</Variant1> <Variant2>0.5</Variant2> <Variant3>1.2</Variant3> <Variant4>4.1</Variant4> <Variant5>93.9</Variant5> <Varian

我有以下XML:

<StatsContainer>
    <Variant1>0</Variant1>
    <Variant2>0.5</Variant2>
    <Variant3>1.2</Variant3>
    <Variant4>4.1</Variant4>
    <Variant5>93.9</Variant5>
    <Variant6>0.3</Variant6>
    <Variant7>0</Variant7>
    <Variant8>0</Variant8>
    <Variant9>0</Variant9>
    <Variant10>0</Variant10>
    <Variant11>0</Variant11>
    <Variant12>0</Variant12>
    <GlobalVariant1>4.6</GlobalVariant1>
    <GlobalVariant2>40.4</GlobalVariant2>
    <GlobalVariant3>13.8</GlobalVariant3>
    <GlobalVariant4>2.8</GlobalVariant4>
    <GlobalVariant5>35.6</GlobalVariant5>
    <GlobalVariant6>2.8</GlobalVariant6>
    <GlobalVariant7>0</GlobalVariant7>
    <GlobalVariant8>0</GlobalVariant8>
    <GlobalVariant9>0</GlobalVariant9>
    <GlobalVariant10>0</GlobalVariant10>
    <GlobalVariant11>0</GlobalVariant11>
    <GlobalVariant12>0</GlobalVariant12>
    <MosaicType>Boligtype</MosaicType>
    <OverRepresentedVariant>5</OverRepresentedVariant>
</StatsContainer>
因此,现在我需要一些帮助来找到具有正确ID的变体标记。我需要的标记将始终命名为“Variant”,后跟一个ID。那么如何才能获得正确的标记

StatsContainer/*[name() = concat('Variant', ../OverRepresentedVariant)] StatContainer/*[name()=concat('Variant',../OverRepresentedVariant)] PS:您真的应该考虑更改XML。将数据作为元素名的一部分是一个坏主意。应该是这样的:

<StatsContainer>
  <Variant id="1">0</Variant>
  <!-- ... -->
  <Variant id="12">0</Variant>
  <GlobalVariant id="1">4.6</GlobalVariant>
  <!-- ... -->
  <GlobalVariant id="12">0</GlobalVariant>
  <MosaicType>Boligtype</MosaicType>
  <OverRepresentedVariant>5</OverRepresentedVariant>
</StatsContainer>

0
0
4.6
0
博利格型
5.
然后XPath将是

StatsContainer/Variant[@id = ../OverRepresentedVariant] statcontainer/Variant[@id=../overresentedvariant]
谢谢托马拉克。我将看看制作XML的同事是否可以更改它。 StatsContainer/Variant[@id = ../OverRepresentedVariant]