xml - XSL need help get value -


i new xslt , trying following information.

i have xml looks this:

<?xml version="1.0" encoding="utf-8"?> <soa:label identifier="624e35e5-f7fe-49d2-b7d6-669543106161" name="metadata label" description="this label holds 2 fields, duration , file name of media file.  intended populated using identify." instance="1ab96760-b2f2-439d-8c26-ef204236b3ec" signature="00000000-0000-0000-0000-000000000000" xmlns:soa="urn:telestream.net:soa:core">   <soa:category identifier="007cf696-0ee3-4bbf-8d1a-5fc90b75ae82" name="video" order="0" />   <soa:category identifier="f6754a00-a901-4cfe-b500-737506a67da5" name="audio" order="0" />   <soa:parameter type="timecode" identifier="f74643ba-085e-4a89-8362-a222720a4c4e" bindable="true" name="duration" enabled="true" disableable="false">     00:00:00:00@25<soa:default>z00:00:00:00@25</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="string" identifier="72584048-c72f-46c3-9dd7-f4da519bfb70" bindable="true" name="file name" enabled="true" disableable="false">     default.mpg<soa:default>default.mpg</soa:default>     <soa:option>default.mpg</soa:option>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="int32" identifier="5cf311fc-2ef6-4886-a8db-1cb33b6bc6f0" bindable="true" name="video width" category="007cf696-0ee3-4bbf-8d1a-5fc90b75ae82" enabled="true" disableable="false">     720<soa:default>z720</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="int32" identifier="3fae6a7b-6a06-4d03-b2ab-65974ddcb6b1" bindable="true" name="video height" category="007cf696-0ee3-4bbf-8d1a-5fc90b75ae82" enabled="true" disableable="false">     576<soa:default>z576</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="int32" identifier="35ab87a9-535d-4ae2-b280-4cad204bb2a1" bindable="true" name="audio channels" category="f6754a00-a901-4cfe-b500-737506a67da5" enabled="true" disableable="false">     2<soa:default>2</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="string" identifier="19336ecc-9e6c-4f7e-ab40-18d95a5546f3" bindable="true" name="video codec" category="007cf696-0ee3-4bbf-8d1a-5fc90b75ae82" enabled="true" disableable="false">     dvpal<soa:default>dvpal</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="int32" identifier="16bb6aac-93b0-4074-b4bb-a0b0ded92940" bindable="true" name="audio bitrate" category="f6754a00-a901-4cfe-b500-737506a67da5" enabled="true" disableable="false">     192<soa:default>192</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="string" identifier="7e50585e-e30f-43d3-be49-9a488e2531f2" bindable="true" name="audio codec" category="f6754a00-a901-4cfe-b500-737506a67da5" enabled="true" disableable="false">     pcm<soa:default>pcm</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter>   <soa:parameter type="int32" identifier="67aa5f6f-60fe-4d2a-a5f0-caca31ebe088" bindable="true" name="audio sample rate" category="f6754a00-a901-4cfe-b500-737506a67da5" enabled="true" disableable="false">     48<soa:default>48</soa:default>     <soa:isrequired>false</soa:isrequired>   </soa:parameter> </soa:label> 

and want

   <filename>default.mpg</filename>    <duration>00:00:00:00</duration>    <video_width>720</video_width>    <video_height>576</video_height> 

but values need first

for example in:

<soa:parameter type="string" identifier="72584048-c72f-46c3-9dd7-f4da519bfb70" bindable="true" name="file name" enabled="true" disableable="false">default.mpg<soa:default>... 

i need default.mpg filename tag.

for moment succeeded in getting duration value with:

<xsl:value-of select="substring-before(soa:label/soa:parameter,'@')"/> 

i guess need this:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns:soa="urn:telestream.net:soa:core" exclude-result-prefixes="soa">  <xsl:output method="xml" indent="yes"/> <xsl:strip-space elements="*"/>  <xsl:template match="/">     <root>         <filename>             <xsl:value-of select="soa:label/soa:parameter[@name='file name']/text()[1]"/>         </filename>         <duration>             <xsl:value-of select="substring-before(soa:label/soa:parameter[@name='duration']/text()[1],'@')"/>         </duration>         <video_width>             <xsl:value-of select="soa:label/soa:parameter[@name='video width']/text()[1]"/>         </video_width>         <video_height>             <xsl:value-of select="soa:label/soa:parameter[@name='video height']/text()[1]"/>         </video_height>     </root> </xsl:template> 


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -