首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLStarlet提取多行

XMLStarlet提取多行
EN

Stack Overflow用户
提问于 2016-06-22 01:55:29
回答 1查看 237关注 0票数 1

我有一个包含URL信息的相当复杂的XML文件。这些URL是从几个XML字段构建的,我在提取这些字段以组装URL时遇到了麻烦。

XML看起来像这样,我需要提取其中的所有字段(为了便于阅读,我将它们加粗)我完全不能提取所有这些字段。我已经安装了XMLStarlet,在过去我也用过几次,但这是我无法理解的。如有任何建议或帮助,将不胜感激。

代码语言:javascript
复制
 <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>
EN

回答 1

Stack Overflow用户

发布于 2016-06-25 05:05:17

代码语言:javascript
复制
xmlstarlet sel -t -m 'DynamicUrl/Query/DynamicUrlNameValuePair/Value/Text' -v . -o '/' file.xml

你确定这是你的问题吗?

也许你的问题是xsi:type="DynamicUrlLiteral"

我只是把它们去掉了,

也许您已经在所提供的xml片段之外定义了名称空间,如果没有,则需要在文件中定义xsi:type是什么,或者至少在命令行上用-N foo=xsi:type告诉xmlstarlet

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37951363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档