我试图在XML上运行转换,以根据属性值生成不包含源中某些元素的输出。
作为初学者,我在解决每个和if循环方面遇到了一些问题。
源XML:
<manifest xmlns="http://ns.adobe.com/f4m/1.0"><id>TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAP</id>
<duration>39.960</duration>
<mimeType>video/f4v</mimeType>
<streamType>recorded</streamType>
<bootstrapInfo id="PV4" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PV5" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo
<bootstrapInfo id="PV8" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PV10" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PV13" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAnAQAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA6NAAAAAIAAAAAAAA6IAAAKjAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PV14" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAnAQAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA6NAAAAAIAAAAAAAA6IAAAKjAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PA3" profile="named">AAAAe2Fic3QAAAAAAAAAAgAAAAPoAAAAAAAAm9UAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAANWFmcnQAAAAAAAAD6AAAAAACAAAAAQAAAAAAAAAAAAAnEAAAAAQAAAAAAAB1gAAAJkgA</bootstrapInfo>
<media streamId="PV4" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV4" bitrate="351" width="384" height="216" bootstrapInfoId="PV4">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAWQAAAAAAAAAIYXZjbGV2ZWwAQDUAAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV5" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV5" bitrate="226" width="512" height="288" bootstrapInfoId="PV5">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD4AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV8" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV8" bitrate="661" width="704" height="396" bootstrapInfoId="PV8">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD4AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV10" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV10" bitrate="1269" width="960" height="540" bootstrapInfoId="PV10">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD8AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV13" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV13" bitrate="2222" width="960" height="540" bootstrapInfoId="PV13">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXRcKPXCj1wAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAWQAAAAAAAAAIYXZjbGV2ZWwAQD8AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV14" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV14" bitrate="3970" width="1280" height="720" bootstrapInfoId="PV14">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXRcKPXCj1wAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAWQAAAAAAAAAIYXZjbGV2ZWwAQEAAAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PA3" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPA3" bitrate="47" bootstrapInfoId="PA3">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAWQYUeuFHrgAMYXVkaW9jb2RlY2lkAgAEbXA0YQAGYWFjYW90AAAAAAAAAAAAAA9hdWRpb3NhbXBsZXJhdGUAQOdwAAAAAAAADWF1ZGlvY2hhbm5lbHMAQAAAAAAAAAAACXRyYWNraW5mbwoAAAABAwAGbGVuZ3RoAAAAAAAAAAAAAAl0aW1lc2NhbGUAQI9AAAAAAAAACGxhbmd1YWdlAgADZW5nAAAJAAAJ</metadata>
</media>
</manifest>
我正在研究生成一个输出xml,其中包含存在以下属性的相关引导程序和媒体节点,PV4,PV5,PV8,PV10和PA3
到目前为止我的XSL。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:f4m="http://ns.adobe.com/f4m/1.0" version="1.0">
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
<xsl:template match="/">
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<id>
<xsl:value-of select="/f4m:manifest/f4m:id[1]/text()"/>
</id>
<duration>
<xsl:value-of select="/f4m:manifest/f4m:duration[1]/text()"/>
</duration>
<mimeType>
<xsl:value-of select="/f4m:manifest/f4m:mimeType[1]/text()"/>
</mimeType>
<streamType>
<xsl:value-of select="/f4m:manifest/f4m:streamType[1]/text()"/>
</streamType>
</manifest>
</xsl:template>
</xsl:stylesheet>
预期产出:
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<id>TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAP</id>
<duration>39.960</duration>
<mimeType>video/f4v</mimeType>
<streamType>recorded</streamType>
<bootstrapInfo id="PV4" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PV5" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo
<bootstrapInfo id="PV8" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PV10" profile="named">AAAAm2Fic3QAAAAAAAAABAAAAAPoAAAAAAAAm/AAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAAVWFmcnQAAAAAAAAD6AAAAAAEAAAAAQAAAAAAAAAAAAA88AAAAAIAAAAAAAA9QAAAJxAAAAADAAAAAAAAZFAAACd0AAAABAAAAAAAAIwAAAAQBAA=</bootstrapInfo>
<bootstrapInfo id="PA3" profile="named">AAAAe2Fic3QAAAAAAAAAAgAAAAPoAAAAAAAAm9UAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAAAQBAAAANWFmcnQAAAAAAAAD6AAAAAACAAAAAQAAAAAAAAAAAAAnEAAAAAQAAAAAAAB1gAAAJkgA</bootstrapInfo>
<media streamId="PV4" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV4" bitrate="351" width="384" height="216" bootstrapInfoId="PV4">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAWQAAAAAAAAAIYXZjbGV2ZWwAQDUAAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV5" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV5" bitrate="226" width="512" height="288" bootstrapInfoId="PV5">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD4AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV8" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV8" bitrate="661" width="704" height="396" bootstrapInfoId="PV8">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD4AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PV10" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPV10" bitrate="1269" width="960" height="540" bootstrapInfoId="PV10">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAXUo9cKPXCgAFd2lkdGgAAAAAAAAAAAAABmhlaWdodAAAAAAAAAAAAAAMdmlkZW9jb2RlY2lkAgAESDI2NAAKYXZjcHJvZmlsZQBAU0AAAAAAAAAIYXZjbGV2ZWwAQD8AAAAAAAAADnZpZGVvZnJhbWVyYXRlAP/4AAAAAAAAAAl0cmFja2luZm8KAAAAAQMABmxlbmd0aAAAAAAAAAAAAAAJdGltZXNjYWxlAECPQAAAAAAAAAhsYW5ndWFnZQIAA2VuZwAACQAACQ==</metadata>
</media>
<media streamId="PA3" url="TearsOfSteel_Teaser_1920x1080_2.0EN_25_XDCAM_REWRAPPA3" bitrate="47" bootstrapInfoId="PA3">
<metadata>AgAKb25NZXRhRGF0YQgAAAAAAAhkdXJhdGlvbgBAWQYUeuFHrgAMYXVkaW9jb2RlY2lkAgAEbXA0YQAGYWFjYW90AAAAAAAAAAAAAA9hdWRpb3NhbXBsZXJhdGUAQOdwAAAAAAAADWF1ZGlvY2hhbm5lbHMAQAAAAAAAAAAACXRyYWNraW5mbwoAAAABAwAGbGVuZ3RoAAAAAAAAAAAAAAl0aW1lc2NhbGUAQI9AAAAAAAAACGxhbmd1YWdlAgADZW5nAAAJAAAJ</metadata>
</media>
</manifest>
任何建议/协助都表示赞赏。
答案 0 :(得分:1)
我正在研究生成包含相关内容的输出xml 存在以下属性的引导程序和媒体节点, PV4,PV5,PV8,PV10和PA3
AFAICT,这应该这样做:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:f4m="http://ns.adobe.com/f4m/1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="f4m:bootstrapInfo[not(@id='PV4' or @id='PV5' or @id='PV8' or @id='PV10' or @id='PA3')]"/>
<xsl:template match="f4m:media[not(@streamId='PV4' or @streamId='PV5' or @streamId='PV8' or @streamId='PV10' or @streamId='PA3')]"/>
</xsl:stylesheet>