2013-05-09 5 views
0

У меня возникла проблема с отображением моих желаемых тегов XML на основе параметра. Я довольно новичок в этом.XSL - отображение XML-тегов на основе параметра из PHP

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> 

Проблема заключается в том, что я хочу, чтобы иметь возможность выбрать автомобиль, который отображается, основанный на HTML форме я сделал в моем PHP документ. Итак, я сделал форму на PHP, отправил значение POST обратно в свой XSL-документ, и теперь я хочу отобразить автомобиль на основе этого значения параметра. Также обратите внимание, что у автомобиля Fiat нет владельца. Я могу получить значение POST в моем документе XSL, но я не уверен, как я использую этот параметр.

То, что я себе это поворот, чтобы: Позволяет сказать, что Toyota будет выбран в форме,

car name=Toyota 

model nr=123 yeardate=2010 

owner ssn=123456789 name=tom 

owned years=0 months=6 

Я хочу, чтобы включить имя тега, а также все атрибуты.

+0

Ваш код отсутствует, также неясно, в чем проблема и какие из существующих ответов вам не помогли. Перечислите их и расскажите, что не сработало для вас. – hakre

+0

[del-ref] (http://stackoverflow.com/questions/16564345/xsl-parse-xml-with-paramter-from-php) – hakre

ответ

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(); 
    } 
} 
?>