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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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节点值和属性_Xml_Xpath_Pentaho_Kettle - Fatal编程技术网

如何从循环节点提取XML节点值和属性

如何从循环节点提取XML节点值和属性,xml,xpath,pentaho,kettle,Xml,Xpath,Pentaho,Kettle,我使用Kettle和GetDatafromXML转换从XML文件中提取某些信息。我将循环Xpath设置为/*[name()='feed']/*[name()='entry'],这将引入所有相关字段 我想从regions节点中提取每个节点作为其自己的字段,以便以后可以用“/”分隔符将它们连接起来 接下来,我需要为每个节点创建每周费率\u from和每周费率\u to等字段。我不太清楚Xpath如何区分periodType之类的属性,以及如何提取from和to信息。换句话说,当periodType=

我使用Kettle和GetDatafromXML转换从XML文件中提取某些信息。我将循环Xpath设置为
/*[name()='feed']/*[name()='entry']
,这将引入所有相关字段

我想从regions节点中提取每个
节点作为其自己的字段,以便以后可以用“/”分隔符将它们连接起来

接下来,我需要为每个
节点创建
每周费率\u from
每周费率\u to
等字段。我不太清楚Xpath如何区分periodType之类的属性,以及如何提取from和to信息。换句话说,当periodType=weekly时,我只需要提取“to”和“from”费率属性

希望这不会太混乱,我可能解释得不好

<feed>
<entry>
  <content>
    <listing>    
      <regions>
        <region>World</region>
        <region>USA</region>
        <region>California</region>
        <region>Inland Empire California</region>
        <region>Temecula Valley</region>
        <region>Temecula</region>
      </regions>
      <rates rentalBasis="property">
        <rate from="3395" to="4175" currencyUnit="USD" periodType="weekly"/>
        <rate from="599" to="749" currencyUnit="USD" periodType="nightly-weekday"/>
        <rate from="799" to="1019" currencyUnit="USD" periodType="nightly-weekend"/>
      </rates>
    </listing>
  </content>
</entry>
<entry>
...
</entry>
... for a total of 20 "entry" nodes
</feed>

世界
美国
加利福尼亚
加州内陆帝国酒店
蒂梅丘拉谷
特梅库拉
...
... 总共有20个“入口”节点

计算所有区域元素:

count(/feed/entry/content/listing/regions/region)
仅针对periodType weekly从和到检索

/feed/entry/content/listing/rates/rate[@periodType = 'weekly']/@from
/feed/entry/content/listing/rates/rate[@periodType = 'weekly']/@to

非常感谢。我对Xpath不是很熟悉,所以我不知道如何只获取“weekly”属性。