2013-03-21 118 views
0

我有以下XML:XML选择基于

<aa> 
     <abc> 
      <name>convention</name> 
      <value>test1</value> 
     </abc> 
     <abc> 
      <name>computer</name> 
      <value>test2</value> 
     </abc> 
     <abc> 
      <name>human</name> 
      <value>test3</value> 
     </abc> 
     <abc> 
      <name>airplane</name> 
      <value>test4</value> 
     </abc> 
     <abc> 
      <name>flight</name> 
      <value>test5</value> 
     </abc> 
     <abc> 
      <name>keyboard</name> 
      <value>test6</value> 
     </abc> 
    </aa> 

我想选择基于选择的名称值之一。对于例如如果名字是航班,那么我需要选择它的值test5。并且不显示全部,只显示名称航班的值。我们如何做到这一点 ?

编辑:对不起,没有提及的语言。

我在上面的xml中使用xlst来选择并仅获取航班的值,例如。

我尝试这样做:

<xsl:variable name="test" select="/aa/abc[@name='flight']"/> 
    <Test name= "{$test}"/> 

但这似乎并没有为取得用于飞行的值。

+0

没有进一步的编辑来提供更多的上下文,这个社区的任何成员都无法为您提供这个问题的高质量答案。请编辑您的问题,让我们知道您使用的是哪种环境/编程语言,以及您在寻找解决方案时发现了什么错误答案。 – 2013-03-21 14:14:18

+0

@RyanRansford:谢谢我编辑并添加了更多信息。 – user726720 2013-03-21 14:21:47

+0

@Mike:我试过了,正如下面JLRishe提到的那样。它显示为:flight test5。我只想显示test5。我怎么做 ? – user726720 2013-03-21 14:30:32

回答

2

由于name是一个元素而不是属性,所以@不正确。请试试这个:

<xsl:variable name="test" select="/aa/abc[name='flight']/value"/> 
<Test name="{$test}"/> 
+0

这是给我的名字,它的价值在一枪。例如:飞行测试5。我只想选择test5并且不想显示航班。 – user726720 2013-03-21 14:27:46

+0

在这种情况下,您需要选择值元素。请参阅我上面的修改。 – JLRishe 2013-03-21 14:32:34

+0

感谢您的好友,整理出来。从中学到了一些东西。谢谢你。很好的帮助。保重。 – user726720 2013-03-21 14:34:01