2017-04-04 15 views
0

Gegeben zu ziehen:Xmlstarlet Verwenden von Werten

für UOI_ID und OWNING_UNIT_UNIQUE_NAME
<UOIS UOI_ID="9352923211a63c6fe6643832d3c4a7786e21ed26" CONTENT_TYPE="VIDEO" NAME="TR2014_295_11_1a_PM.mov" VERSION="1" METADATA_STATE_DT="2016-06-03 17:01:10.0" METADATA_STATE_USER_ID="1" IMPORT_DT="2016-06-03 13:35:58.0" IMPORT_USER_ID="1" MASTER_OBJ_MIME_TYPE="video/quicktime" MODEL_ID="30001"> 
<FILE_SIZE_VIEW CONTENT_SIZE="100948.92  " /> 
<SI_AV_ASSET_METADATA VIDEO_BIT_RATE="226 Mbps" REGIONAL_ENCODING_FORMAT="NTSC" DC_TITLE="TR2014_295_11_1a_PM.mov" VIDEO_ORIGINATION_FORMAT="Betacam SP" AV_ASSET_TYPE="Video - Original" MODIFICATION="Editing Allowed" /> 
<SI_AUDIO_LANGUAGE_DTLS LANGUAGE="English" /> 
<SI_ASSET_METADATA HOT_FOLDER_IMPORT_ID="23335" PUBLIC_USE="No" PRIMARY_CREATOR="Bl" CAPTURE_DEVICE="Captured via Sony DVW-A500 Digital Betacam VTR, SDI to Blackmagic UltraStudio Express ADC to Blackmagic Media Express software" IS_RESTRICTED="No" OWNING_UNIT_UNIQUE_NAME="NMAAHC-TR2014_295_11_1a_PM" ALTERNATE_IDENTIFIER_1="TR2014.295" COLOR_SPACE="YCbCr " EMBARGO="No" /> 
</UOIS> 

Wie ziehe ich die Werte? Wie man Attribute von verschiedenen Tags zieht und sie concat, ist die grundlegende Frage.

Antwort

0

Unter der Annahme, dass SI_ASSET_METADATA ist direkter Nachkomme von UOIS (derzeit nicht klar ist, da UOIS Element nicht geschlossen ist):

xmlstarlet sel -t -m "//UOIS" \ 
     -v "concat(@UOI_ID, ', ' , SI_ASSET_METADATA/@OWNING_UNIT_UNIQUE_NAME)" \ 
     -n your_xml.xml 
+0

Thanks @ har07 funktionierte perfekt! Ich habe auch das 'UOIS'-Tag geschlossen. – Bleakley

+0

Wenn 'SI_ASSET_METADATA' kein direktes Kind von' UOIS' wäre, wie würde das dann funktionieren? – Bleakley

+0

Geben Sie den genauen Pfad an, der vom direkten untergeordneten Element zum Zielelement beginnt: 'foo/bar/SI_ASSET_METADATA' oder' .// SI_ASSET_METADATA' – har07

Verwandte Themen