【发布时间】:2014-04-27 19:22:50
【问题描述】:
我有一个文本文件,其中包含在单行中带有多个 xml 标记的行。下面是它的示例(为清楚起见,添加了返回和间距)。
xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="1397133927.05244" TimeStamp="2014-04-10T07:45:27.00-05:00" Target="Production" Version="1.002" PrimaryLangID="en-us"><POS><Source><RequestorID Type="18" ID="HILTON"/></Source></POS><AvailStatusMessages ChainCode="ES" BrandCode="ES" HotelCode="41914">
<AvailStatusMessage><StatusApplicationControl Start="2014-04-20" End="2014-04-26" Sun="1" InvCodeApplication="InvCode" InvCode="U1K" RatePlanCodeType="RatePlanCode" RatePlanCode="EXL" RateTier="8" IsRoom="1" Override="1"/><LengthsOfStay ArrivalDateBased="1" FixedPatternLength="2"><LengthOfStay Time="1" TimeUnit="Day" MinMaxMessageType="FullPatternLOS"/></LengthsOfStay></AvailStatusMessage>
<AvailStatusMessage><StatusApplicationControl Start="2014-04-20" End="2014-04-26" Mon="1" Tue="1" Weds="1" Thur="1" Fri="1" Sat="1" InvCodeApplication="InvCode" InvCode="U1K" RatePlanCodeType="RatePlanCode" RatePlanCode="EXL" RateTier="8" IsRoom="1" Override="1"/><LengthsOfStay ArrivalDateBased="1" FixedPatternLength="1"></LengthsOfStay></AvailStatusMessage>
<AvailStatusMessage><StatusApplicationControl Start="2014-04-27" End="2014-05-21" Sun="1" Mon="1" Tue="1" Weds="1" Thur="1" Fri="1" Sat="1" InvCodeApplication="InvCode" InvCode="U1K" RatePlanCodeType="RatePlanCode" RatePlanCode="EXL" RateTier="8" IsRoom="1" Override="1"/><LengthsOfStay ArrivalDateBased="1"
我有标签,其中包含具有 StatusApplicationControl Start 值的字段。我想获取所有具有 StatusApplicationControl 起始值为“2014-04-27”的 AvailStatusMessage 标签。
请帮助我使用 perl 或 shell 脚本完成这项工作。
提前致谢。
【问题讨论】:
-
在您的示例 XML 代码中,
AvailStatusMessage标记似乎为空?那么对于这一行,你想得到一个空字符串吗? -
-
这就是availstatusmessage标签的样子(我在上面的评论中粘贴了这个),单行包含多个这样的标签。
-
好的..我会看看的。