2016-06-21 5 views
1

私は、URL情報を格納するこのかなり複雑なXMLファイルを持っています。 URLはいくつかのXMLフィールドから作成されており、これらのフィールドを抽出してURLを組み立てる際に問題があります。複数の行を抽出するXMLStarlet

XMLはこのように見えますが、私はすべてのフィールドを抽出する必要があります(読みやすくするために太字にしています)。これらのフィールドをすべて抽出するには完全な犠牲を払っています。私はXMLStarletをインストールしていますが、過去に数回使用しましたが、これは私の頭の中での方法です。どんな提案や助けも大歓迎です。

<DynamicUrl> 
    <Name>DynamicUrl</Name> 
    <CacheData>true</CacheData> 
    <Path>http://contentstore.fourwindsinteractive.com/PlayerHandler.ashx</Path> 
    <Query> 
    <DynamicUrlNameValuePair> 
     <Name>Type</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>download</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    <DynamicUrlNameValuePair> 
     <Name>Title</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>CS00090256</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    <DynamicUrlNameValuePair> 
     <Name>UserType</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>1</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    <DynamicUrlNameValuePair> 
     <Name>LinkSource</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>X3/1QlyNrhGynsh+0oRn7Q==</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    <DynamicUrlNameValuePair> 
     <Name>LinkKey</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>1c44ad692f10fc96922282d9bf6eb57c</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    <DynamicUrlNameValuePair> 
     <Name>Extension</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>mp4</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    <DynamicUrlNameValuePair> 
     <Name>FWIIncludeMimetype</Name> 
     <Value xsi:type="DynamicUrlLiteral"> 
     <Text>false</Text> 
     </Value> 
    </DynamicUrlNameValuePair> 
    </Query> 
    <UseUploadData>false</UseUploadData> 
    <Method>Get</Method> 
    <Username /> 
    <Password /> 
    <Domain /> 
    <ConnectionString /> 
    <CommandText /> 
    <DeploymentBehavior>DownloadSource</DeploymentBehavior> 
</DynamicUrl> 
+0

こんにちはTom C、tomc here;)あなたの太字はありません。多分あなたは何か他の方法で必要なものを説明する必要があります – tomc

+0

フィールドにすべてがラップされています。 –

答えて

1
xmlstarlet sel -t -m 'DynamicUrl/Query/DynamicUrlNameValuePair/Value/Text' -v . -o '/' file.xml 

あなたは、これはあなたの質問でよろしいですか?

たぶん、あなたの問題は、あなたが、あなたは何をお使いのXSI定義する必要はありませんどちらかの場合、私はちょうどそれらを取り除かxsi:type="DynamicUrlLiteral"


は、多分あなたは、XMLフラグメントの外に定義された名前空間はあなたが を供給している次のとおりです。タイプがファイルにあるか、少なくともxmlstarletにコマンドラインで伝えてください-N foo=xsi:type

関連する問題