XSL - 根据PHP中的参数显示XML标记

时间:2013-05-09 15:01:24

标签: xslt parameters

我在根据参数显示所需的XML标签时出现问题。我对此很新。

XML示例:

<car name="Toyota">
   <model nr="123" yeardate="2010">
      <owner ssn="123456789" name="Tom"/>
      <owned years="0" months="6"/>
   </model>
</car>
<car name="Volvo">
   <model nr="222" yeardate="2009">
      <owner ssn="345364774" name="John"/>
      <owned years="0" months="8"/>
   </model>
</car>
<car name="Fiat">
   <model nr="333" yeardate="2010">
      <owned years="0" months="0"/>
   </model>
</car>

问题在于我希望能够根据我在PHP文档中制作的HTML表单选择显示的汽车。所以,我在PHP中创建了一个表单,将POST的值发送回我的XSL文档,现在我想根据这个参数值显示汽车。另外,请注意汽车菲亚特没有车主。我能够在我的XSL文档中获得POST的值,但我不确定如何使用此参数。

我想象这转变为: 让我们说丰田是以这种形式选择的,

car name=Toyota

model nr=123 yeardate=2010

owner ssn=123456789 name=tom

owned years=0 months=6

我想要包含标签名称以及所有属性。

1 个答案:

答案 0 :(得分:0)

如果你使用PHP,也许你不需要XSL。看看SimpleXML

<?php
$xmlString = '<root>
    <car name="Toyota">
       <model nr="123" yeardate="2010">
          <owner ssn="123456789" name="Tom"/>
          <owned years="0" months="6"/>
       </model>
    </car>

    <car name="Fiat">
       <model nr="333" yeardate="2010">
          <owned years="0" months="0"/>
       </model>
    </car>
</root>';

$xml = new SimpleXMLElement($xmlString);

foreach ($xml->children() as $second_gen) {
    if ( (string) $second_gen['name'] == "Toyota") {
        echo $second_gen->asXML();
    }
}
?>