dom4j 间隔插入节点 处理复杂的xml文档
前几周跟着老师做了个项目,个人主要负责xml文档处理.
先贴下修改前的xml(部分)
1 <?xml version="1.0" encoding="GB2312" standalone="yes"?> 2 <BroadcastData code="110000000" creationtime="20171103111425" version="2.0"> 3 <ProviderInfo id="ChinaEPG" name="David" /> 4 <SchedulerData> 5 <Channel type="Normal"> 6 <ChannelText language="chi"> 7 <ChannelName>CCTV-1高清</ChannelName> 8 </ChannelText> 9 <Event eventid="1" begintime="20171103004800" duration="004500" eventtype="00"> 10 <EventText language="chi"> 11 <Name>动物世界</Name> 12 <ShortDescription /> 13 </EventText> 14 </Event> 15 <Event eventid="2" begintime="20171103013300" duration="003000" eventtype="11"> 16 <EventText language="chi"> 17 <Name>晚间新闻</Name> 18 <ShortDescription /> 19 </EventText> 20 </Event> 21 <Event eventid="3" begintime="20171103020300" duration="004800" eventtype="11"> 22 <EventText language="chi"> 23 <Name>超级工程Ⅱ:中国路</Name> 24 <ShortDescription /> 25 </EventText> 26 </Event> 27 <Event eventid="4" begintime="20171103025100" duration="000900" eventtype="11"> 28 <EventText language="chi"> 29 <Name>精彩1刻:航拍中国-陕西</Name> 30 <ShortDescription /> 31 </EventText> 32 </Event> 33 <Event eventid="5" begintime="20171103030000" duration="012900" eventtype="11"> 34 <EventText language="chi"> 35 <Name>中国诗词大会Ⅱ:第一场</Name> 36 <ShortDescription /> 37 </EventText> 38 </Event> 39 <Event eventid="6" begintime="20171103042900" duration="002800" eventtype="11"> 40 <EventText language="chi"> 41 <Name>今日说法</Name> 42 <ShortDescription /> 43 </EventText> 44 </Event> 45 <Event eventid="7" begintime="20171103045700" duration="003000" eventtype="11"> 46 <EventText language="chi"> 47 <Name>新闻联播</Name> 48 <ShortDescription /> 49 </EventText> 50 </Event> 51 <Event eventid="8" begintime="20171103052700" duration="003300" eventtype="11"> 52 <EventText language="chi"> 53 <Name>人与自然</Name> 54 <ShortDescription /> 55 </EventText> 56 </Event> 57 <Event eventid="9" begintime="20171103060000" duration="023600" eventtype="11"> 58 <EventText language="chi"> 59 <Name>朝闻天下</Name> 60 <ShortDescription /> 61 </EventText> 62 </Event> 63 <Event eventid="10" begintime="20171103083600" duration="004700" eventtype="11"> 64 <EventText language="chi"> 65 <Name>生活圈</Name> 66 <ShortDescription /> 67 </EventText> 68 </Event> 69 <Event eventid="11" begintime="20171103092300" duration="005100" eventtype="11"> 70 <EventText language="chi"> 71 <Name>太行山上(14)</Name> 72 <ShortDescription /> 73 </EventText> 74 </Event> 75 <Event eventid="12" begintime="20171103101400" duration="004700" eventtype="11"> 76 <EventText language="chi"> 77 <Name>太行山上(15)</Name> 78 <ShortDescription /> 79 </EventText> 80 </Event> 81 <Event eventid="13" begintime="20171103110100" duration="005900" eventtype="11"> 82 <EventText language="chi"> 83 <Name>太行山上(16)</Name> 84 <ShortDescription /> 85 </EventText> 86 </Event> 87 <Event eventid="14" begintime="20171103120000" duration="003600" eventtype="11"> 88 <EventText language="chi"> 89 <Name>新闻30分</Name> 90 <ShortDescription /> 91 </EventText> 92 </Event> 93 <Event eventid="15" begintime="20171103123600" duration="004200" eventtype="11"> 94 <EventText language="chi"> 95 <Name>今日说法</Name> 96 <ShortDescription /> 97 </EventText> 98 </Event> 99 <Event eventid="16" begintime="20171103131800" duration="004800" eventtype="11"> 100 <EventText language="chi"> 101 <Name>鸡毛飞上天(15)</Name> 102 <ShortDescription /> 103 </EventText> 104 </Event> 105 <Event eventid="17" begintime="20171103140600" duration="005300" eventtype="11"> 106 <EventText language="chi"> 107 <Name>鸡毛飞上天(16)</Name> 108 <ShortDescription /> 109 </EventText> 110 </Event> 111 <Event eventid="18" begintime="20171103145900" duration="005000" eventtype="11"> 112 <EventText language="chi"> 113 <Name>鸡毛飞上天(17)</Name> 114 <ShortDescription /> 115 </EventText> 116 </Event> 117 <Event eventid="19" begintime="20171103154900" duration="005700" eventtype="11"> 118 <EventText language="chi"> 119 <Name>鸡毛飞上天(18)</Name> 120 <ShortDescription /> 121 </EventText> 122 </Event> 123 <Event eventid="20" begintime="20171103164600" duration="000600" eventtype="11"> 124 <EventText language="chi"> 125 <Name>中国梦歌曲:满城烟花</Name> 126 <ShortDescription /> 127 </EventText> 128 </Event> 129 <Event eventid="21" begintime="20171103165200" duration="000800" eventtype="11"> 130 <EventText language="chi"> 131 <Name>第一动画乐园</Name> 132 <ShortDescription /> 133 </EventText> 134 </Event> 135 <Event eventid="22" begintime="20171103170000" duration="005700" eventtype="11"> 136 <EventText language="chi"> 137 <Name>第一动画乐园</Name> 138 <ShortDescription /> 139 </EventText> 140 </Event> 141 <Event eventid="23" begintime="20171103175700" duration="002600" eventtype="11"> 142 <EventText language="chi"> 143 <Name>第一动画乐园</Name> 144 <ShortDescription /> 145 </EventText> 146 </Event> 147 <Event eventid="24" begintime="20171103182300" duration="001000" eventtype="11"> 148 <EventText language="chi"> 149 <Name>第一动画乐园:故事乐园</Name> 150 <ShortDescription /> 151 </EventText> 152 </Event> 153 <Event eventid="25" begintime="20171103183300" duration="002700" eventtype="11"> 154 <EventText language="chi"> 155 <Name>第一动画乐园</Name> 156 <ShortDescription /> 157 </EventText> 158 </Event> 159 <Event eventid="26" begintime="20171103190000" duration="003000" eventtype="11"> 160 <EventText language="chi"> 161 <Name>新闻联播</Name> 162 <ShortDescription /> 163 </EventText> 164 </Event> 165 <Event eventid="27" begintime="20171103193000" duration="001000" eventtype="11"> 166 <EventText language="chi"> 167 <Name>天气预报</Name> 168 <ShortDescription /> 169 </EventText> 170 </Event> 171 <Event eventid="28" begintime="20171103194000" duration="002200" eventtype="11"> 172 <EventText language="chi"> 173 <Name>焦点访谈</Name> 174 <ShortDescription /> 175 </EventText> 176 </Event> 177 <Event eventid="29" begintime="20171103200200" duration="000500" eventtype="11"> 178 <EventText language="chi"> 179 <Name>前情提要:青恋(24)</Name> 180 <ShortDescription /> 181 </EventText> 182 </Event> 183 <Event eventid="30" begintime="20171103200700" duration="005300" eventtype="11"> 184 <EventText language="chi"> 185 <Name>青恋(24)</Name> 186 <ShortDescription /> 187 </EventText> 188 </Event> 189 <Event eventid="31" begintime="20171103210000" duration="010000" eventtype="11"> 190 <EventText language="chi"> 191 <Name>机智过人Ⅰ(6)</Name> 192 <ShortDescription /> 193 </EventText> 194 </Event> 195 <Event eventid="32" begintime="20171103220000" duration="004200" eventtype="11"> 196 <EventText language="chi"> 197 <Name>晚间新闻</Name> 198 <ShortDescription /> 199 </EventText> 200 </Event> 201 <Event eventid="33" begintime="20171103224200" duration="005600" eventtype="11"> 202 <EventText language="chi"> 203 <Name>机智过人Ⅰ(6)</Name> 204 <ShortDescription /> 205 </EventText> 206 </Event> 207 <Event eventid="34" begintime="20171103233800" duration="002100" eventtype="11"> 208 <EventText language="chi"> 209 <Name>加油向未来(9)</Name> 210 <ShortDescription /> 211 </EventText> 212 </Event> 213 <Event eventid="35" begintime="20171103235900" duration="012600" eventtype="22"> 214 <EventText language="chi"> 215 <Name>结束</Name> 216 <ShortDescription /> 217 </EventText> 218 </Event> 219 <Event eventid="36" begintime="20171104012500" duration="000800" eventtype="00"> 220 <EventText language="chi"> 221 <Name>生活提示</Name> 222 <ShortDescription /> 223 </EventText> 224 </Event> 225 <Event eventid="37" begintime="20171104013300" duration="003200" eventtype="11"> 226 <EventText language="chi"> 227 <Name>晚间新闻</Name> 228 <ShortDescription /> 229 </EventText> 230 </Event> 231 <Event eventid="38" begintime="20171104020500" duration="004500" eventtype="11"> 232 <EventText language="chi"> 233 <Name>动物世界</Name> 234 <ShortDescription /> 235 </EventText> 236 </Event> 237 <Event eventid="39" begintime="20171104025000" duration="001000" eventtype="11"> 238 <EventText language="chi"> 239 <Name>精彩1刻:航拍中国-陕西</Name> 240 <ShortDescription /> 241 </EventText> 242 </Event> 243 <Event eventid="40" begintime="20171104030000" duration="012900" eventtype="11"> 244 <EventText language="chi"> 245 <Name>中国诗词大会Ⅱ:第二场</Name> 246 <ShortDescription /> 247 </EventText> 248 </Event> 249 <Event eventid="41" begintime="20171104042900" duration="002800" eventtype="11"> 250 <EventText language="chi"> 251 <Name>今日说法</Name> 252 <ShortDescription /> 253 </EventText> 254 </Event> 255 <Event eventid="42" begintime="20171104045700" duration="003000" eventtype="11"> 256 <EventText language="chi"> 257 <Name>新闻联播</Name> 258 <ShortDescription /> 259 </EventText> 260 </Event> 261 <Event eventid="43" begintime="20171104052700" duration="003300" eventtype="11"> 262 <EventText language="chi"> 263 <Name>人与自然</Name> 264 <ShortDescription /> 265 </EventText> 266 </Event> 267 <Event eventid="44" begintime="20171104060000" duration="023600" eventtype="11"> 268 <EventText language="chi"> 269 <Name>朝闻天下</Name> 270 <ShortDescription /> 271 </EventText> 272 </Event> 273 <Event eventid="45" begintime="20171104083600" duration="004800" eventtype="11"> 274 <EventText language="chi"> 275 <Name>太行山上(17)</Name> 276 <ShortDescription /> 277 </EventText> 278 </Event> 279 <Event eventid="46" begintime="20171104092400" duration="004900" eventtype="11"> 280 <EventText language="chi"> 281 <Name>太行山上(18)</Name> 282 <ShortDescription /> 283 </EventText> 284 </Event> 285 <Event eventid="47" begintime="20171104101300" duration="014700" eventtype="11"> 286 <EventText language="chi"> 287 <Name>加油向未来(9)</Name> 288 <ShortDescription /> 289 </EventText> 290 </Event> 291 <Event eventid="48" begintime="20171104120000" duration="003600" eventtype="11"> 292 <EventText language="chi"> 293 <Name>新闻30分</Name> 294 <ShortDescription /> 295 </EventText> 296 </Event> 297 <Event eventid="49" begintime="20171104123600" duration="003900" eventtype="11"> 298 <EventText language="chi"> 299 <Name>今日说法</Name> 300 <ShortDescription /> 301 </EventText> 302 </Event> 303 <Event eventid="50" begintime="20171104131500" duration="010200" eventtype="11"> 304 <EventText language="chi"> 305 <Name>寻宝-我有传家宝</Name> 306 <ShortDescription /> 307 </EventText> 308 </Event> 309 <Event eventid="51" begintime="20171104141700" duration="005100" eventtype="11"> 310 <EventText language="chi"> 311 <Name>鸡毛飞上天(19)</Name> 312 <ShortDescription /> 313 </EventText> 314 </Event> 315 <Event eventid="52" begintime="20171104150800" duration="005000" eventtype="11"> 316 <EventText language="chi"> 317 <Name>鸡毛飞上天(20)</Name> 318 <ShortDescription /> 319 </EventText> 320 </Event> 321 <Event eventid="53" begintime="20171104155800" duration="004900" eventtype="11"> 322 <EventText language="chi"> 323 <Name>鸡毛飞上天(21)</Name> 324 <ShortDescription /> 325 </EventText> 326 </Event> 327 <Event eventid="54" begintime="20171104164700" duration="005700" eventtype="11"> 328 <EventText language="chi"> 329 <Name>鸡毛飞上天(22)</Name> 330 <ShortDescription /> 331 </EventText> 332 </Event> 333 <Event eventid="55" begintime="20171104174400" duration="001600" eventtype="11"> 334 <EventText language="chi"> 335 <Name>中国梦歌曲:大地芬芳</Name> 336 <ShortDescription /> 337 </EventText> 338 </Event> 339 <Event eventid="56" begintime="20171104180000" duration="010000" eventtype="11"> 340 <EventText language="chi"> 341 <Name>机智过人Ⅰ(6)</Name> 342 <ShortDescription /> 343 </EventText> 344 </Event> 345 <Event eventid="57" begintime="20171104190000" duration="003000" eventtype="11"> 346 <EventText language="chi"> 347 <Name>新闻联播</Name> 348 <ShortDescription /> 349 </EventText> 350 </Event> 351 <Event eventid="58" begintime="20171104193000" duration="000900" eventtype="11"> 352 <EventText language="chi"> 353 <Name>天气预报</Name> 354 <ShortDescription /> 355 </EventText> 356 </Event> 357 <Event eventid="59" begintime="20171104193900" duration="002400" eventtype="11"> 358 <EventText language="chi"> 359 <Name>焦点访谈</Name> 360 <ShortDescription /> 361 </EventText> 362 </Event> 363 <Event eventid="60" begintime="20171104200300" duration="015700" eventtype="11"> 364 <EventText language="chi"> 365 <Name>星光大道</Name> 366 <ShortDescription /> 367 </EventText> 368 </Event> 369 <Event eventid="61" begintime="20171104220000" duration="003900" eventtype="11"> 370 <EventText language="chi"> 371 <Name>晚间新闻</Name> 372 <ShortDescription /> 373 </EventText> 374 </Event> 375 <Event eventid="62" begintime="20171104223900" duration="010100" eventtype="11"> 376 <EventText language="chi"> 377 <Name>开讲啦</Name> 378 <ShortDescription /> 379 </EventText> 380 </Event> 381 <Event eventid="63" begintime="20171104234000" duration="001900" eventtype="11"> 382 <EventText language="chi"> 383 <Name>星光大道</Name> 384 <ShortDescription /> 385 </EventText> 386 </Event> 387 <Event eventid="64" begintime="20171104235900" duration="012400" eventtype="22"> 388 <EventText language="chi"> 389 <Name>结束</Name> 390 <ShortDescription /> 391 </EventText> 392 </Event>
修改后的xml(部分)
1 <?xml version="1.0" encoding="GB2312" standalone="yes"?> 2 <BroadcastData code="110000000" creationtime="20171103111425" version="2.0"> 3 <ProviderInfo id="ChinaEPG" name="David" /> 4 <SchedulerData> 5 <Channel type="Normal"> 6 <ChannelText language="chi"> 7 <ChannelName>CCTV-1高清</ChannelName> 8 </ChannelText> 9 <Event eventid="03001" begintime="20171103004800" duration="004500" eventtype="00"> 10 <EventText language="chi"> 11 <Name>动物世界</Name> 12 <ShortDescription /> 13 </EventText> 14 </Event> 15 <Event eventid="03002" begintime="20171103013300" duration="003000" eventtype="11"> 16 <EventText language="chi"> 17 <Name>晚间新闻</Name> 18 <ShortDescription /> 19 </EventText> 20 </Event> 21 <Event eventid="03003" begintime="20171103020300" duration="004800" eventtype="11"> 22 <EventText language="chi"> 23 <Name>超级工程Ⅱ:中国路</Name> 24 <ShortDescription /> 25 </EventText> 26 </Event> 27 <Event eventid="03004" begintime="20171103025100" duration="000900" eventtype="11"> 28 <EventText language="chi"> 29 <Name>精彩1刻:航拍中国-陕西</Name> 30 <ShortDescription /> 31 </EventText> 32 </Event> 33 <Event eventid="03005" begintime="20171103030000" duration="012900" eventtype="11"> 34 <EventText language="chi"> 35 <Name>中国诗词大会Ⅱ:第一场</Name> 36 <ShortDescription /> 37 </EventText> 38 </Event> 39 <Event eventid="03006" begintime="20171103042900" duration="002800" eventtype="11"> 40 <EventText language="chi"> 41 <Name>今日说法</Name> 42 <ShortDescription /> 43 </EventText> 44 </Event> 45 <Event eventid="03007" begintime="20171103045700" duration="003000" eventtype="11"> 46 <EventText language="chi"> 47 <Name>新闻联播</Name> 48 <ShortDescription /> 49 </EventText> 50 </Event> 51 <Event eventid="03008" begintime="20171103052700" duration="003200" eventtype="11"> 52 <EventText language="chi"> 53 <Name>人与自然</Name> 54 <ShortDescription /> 55 </EventText> 56 </Event> 57 <Event begintime="20171103055900" eventtype="11" eventid="03009" duration="000100"> 58 <EventText language="chi"> 59 <Name>办中行ETC 免费送OBU设备</Name> 60 </EventText> 61 </Event> 62 <Event eventid="03010" begintime="20171103060000" duration="023500" eventtype="11"> 63 <EventText language="chi"> 64 <Name>朝闻天下</Name> 65 <ShortDescription /> 66 </EventText> 67 </Event> 68 <Event begintime="20171103083500" eventtype="11" eventid="03011" duration="000100"> 69 <EventText language="chi"> 70 <Name>办中行ETC 免费送OBU设备</Name> 71 </EventText> 72 </Event> 73 <Event eventid="03012" begintime="20171103083600" duration="004600" eventtype="11"> 74 <EventText language="chi"> 75 <Name>生活圈</Name> 76 <ShortDescription /> 77 </EventText> 78 </Event> 79 <Event begintime="20171103092200" eventtype="11" eventid="03013" duration="000100"> 80 <EventText language="chi"> 81 <Name>办中行ETC 免费送OBU设备</Name> 82 </EventText> 83 </Event> 84 <Event eventid="03014" begintime="20171103092300" duration="005000" eventtype="11"> 85 <EventText language="chi"> 86 <Name>太行山上(14)</Name> 87 <ShortDescription /> 88 </EventText> 89 </Event> 90 <Event begintime="20171103101300" eventtype="11" eventid="03015" duration="000100"> 91 <EventText language="chi"> 92 <Name>办中行ETC 免费送OBU设备</Name> 93 </EventText> 94 </Event> 95 <Event eventid="03016" begintime="20171103101400" duration="004600" eventtype="11"> 96 <EventText language="chi"> 97 <Name>太行山上(15)</Name> 98 <ShortDescription /> 99 </EventText> 100 </Event> 101 <Event begintime="20171103110000" eventtype="11" eventid="03017" duration="000100"> 102 <EventText language="chi"> 103 <Name>办中行ETC 免费送OBU设备</Name> 104 </EventText> 105 </Event> 106 <Event eventid="03018" begintime="20171103110100" duration="005800" eventtype="11"> 107 <EventText language="chi"> 108 <Name>太行山上(16)</Name> 109 <ShortDescription /> 110 </EventText> 111 </Event> 112 <Event begintime="20171103115900" eventtype="11" eventid="03019" duration="000100"> 113 <EventText language="chi"> 114 <Name>办中行ETC 免费送OBU设备</Name> 115 </EventText> 116 </Event> 117 <Event eventid="03020" begintime="20171103120000" duration="003500" eventtype="11"> 118 <EventText language="chi"> 119 <Name>新闻30分</Name> 120 <ShortDescription /> 121 </EventText> 122 </Event> 123 <Event begintime="20171103123500" eventtype="11" eventid="03021" duration="000100"> 124 <EventText language="chi"> 125 <Name>办中行ETC 免费送OBU设备</Name> 126 </EventText> 127 </Event> 128 <Event eventid="03022" begintime="20171103123600" duration="004100" eventtype="11"> 129 <EventText language="chi"> 130 <Name>今日说法</Name> 131 <ShortDescription /> 132 </EventText> 133 </Event> 134 <Event begintime="20171103131700" eventtype="11" eventid="03023" duration="000100"> 135 <EventText language="chi"> 136 <Name>办中行ETC 免费送OBU设备</Name> 137 </EventText> 138 </Event> 139 <Event eventid="03024" begintime="20171103131800" duration="004700" eventtype="11"> 140 <EventText language="chi"> 141 <Name>鸡毛飞上天(15)</Name> 142 <ShortDescription /> 143 </EventText> 144 </Event> 145 <Event begintime="20171103140500" eventtype="11" eventid="03025" duration="000100"> 146 <EventText language="chi"> 147 <Name>办中行ETC 免费送OBU设备</Name> 148 </EventText> 149 </Event> 150 <Event eventid="03026" begintime="20171103140600" duration="005200" eventtype="11"> 151 <EventText language="chi"> 152 <Name>鸡毛飞上天(16)</Name> 153 <ShortDescription /> 154 </EventText> 155 </Event> 156 <Event begintime="20171103145800" eventtype="11" eventid="03027" duration="000100"> 157 <EventText language="chi"> 158 <Name>办中行ETC 免费送OBU设备</Name> 159 </EventText> 160 </Event> 161 <Event eventid="03028" begintime="20171103145900" duration="004900" eventtype="11"> 162 <EventText language="chi"> 163 <Name>鸡毛飞上天(17)</Name> 164 <ShortDescription /> 165 </EventText> 166 </Event> 167 <Event begintime="20171103154800" eventtype="11" eventid="03029" duration="000100"> 168 <EventText language="chi"> 169 <Name>办中行ETC 免费送OBU设备</Name> 170 </EventText> 171 </Event> 172 <Event eventid="03030" begintime="20171103154900" duration="005600" eventtype="11"> 173 <EventText language="chi"> 174 <Name>鸡毛飞上天(18)</Name> 175 <ShortDescription /> 176 </EventText> 177 </Event> 178 <Event begintime="20171103164500" eventtype="11" eventid="03031" duration="000100"> 179 <EventText language="chi"> 180 <Name>办中行ETC 免费送OBU设备</Name> 181 </EventText> 182 </Event> 183 <Event eventid="03032" begintime="20171103164600" duration="000500" eventtype="11"> 184 <EventText language="chi"> 185 <Name>中国梦歌曲:满城烟花</Name> 186 <ShortDescription /> 187 </EventText> 188 </Event> 189 <Event begintime="20171103165100" eventtype="11" eventid="03033" duration="000100"> 190 <EventText language="chi"> 191 <Name>办中行ETC 免费送OBU设备</Name> 192 </EventText> 193 </Event> 194 <Event eventid="03034" begintime="20171103165200" duration="000700" eventtype="11"> 195 <EventText language="chi"> 196 <Name>第一动画乐园</Name> 197 <ShortDescription /> 198 </EventText> 199 </Event> 200 <Event begintime="20171103165900" eventtype="11" eventid="03035" duration="000100"> 201 <EventText language="chi"> 202 <Name>办中行ETC 免费送OBU设备</Name> 203 </EventText> 204 </Event> 205 <Event eventid="03036" begintime="20171103170000" duration="005600" eventtype="11"> 206 <EventText language="chi"> 207 <Name>第一动画乐园</Name> 208 <ShortDescription /> 209 </EventText> 210 </Event> 211 <Event begintime="20171103175600" eventtype="11" eventid="03037" duration="000100"> 212 <EventText language="chi"> 213 <Name>办中行ETC 免费送OBU设备</Name> 214 </EventText> 215 </Event> 216 <Event eventid="03038" begintime="20171103175700" duration="002500" eventtype="11"> 217 <EventText language="chi"> 218 <Name>第一动画乐园</Name> 219 <ShortDescription /> 220 </EventText> 221 </Event> 222 <Event begintime="20171103182200" eventtype="11" eventid="03039" duration="000100"> 223 <EventText language="chi"> 224 <Name>办中行ETC 免费送OBU设备</Name> 225 </EventText> 226 </Event> 227 <Event eventid="03040" begintime="20171103182300" duration="000900" eventtype="11"> 228 <EventText language="chi"> 229 <Name>第一动画乐园:故事乐园</Name> 230 <ShortDescription /> 231 </EventText> 232 </Event> 233 <Event begintime="20171103183200" eventtype="11" eventid="03041" duration="000100"> 234 <EventText language="chi"> 235 <Name>办中行ETC 免费送OBU设备</Name> 236 </EventText> 237 </Event> 238 <Event eventid="03042" begintime="20171103183300" duration="002600" eventtype="11"> 239 <EventText language="chi"> 240 <Name>第一动画乐园</Name> 241 <ShortDescription /> 242 </EventText> 243 </Event> 244 <Event begintime="20171103185900" eventtype="11" eventid="03043" duration="000100"> 245 <EventText language="chi"> 246 <Name>办中行ETC 免费送OBU设备</Name> 247 </EventText> 248 </Event> 249 <Event eventid="03044" begintime="20171103190000" duration="002900" eventtype="11"> 250 <EventText language="chi"> 251 <Name>新闻联播</Name> 252 <ShortDescription /> 253 </EventText> 254 </Event> 255 <Event begintime="20171103192900" eventtype="11" eventid="03045" duration="000100"> 256 <EventText language="chi"> 257 <Name>办中行ETC 免费送OBU设备</Name> 258 </EventText> 259 </Event> 260 <Event eventid="03046" begintime="20171103193000" duration="000900" eventtype="11"> 261 <EventText language="chi"> 262 <Name>天气预报</Name> 263 <ShortDescription /> 264 </EventText> 265 </Event> 266 <Event begintime="20171103193900" eventtype="11" eventid="03047" duration="000100"> 267 <EventText language="chi"> 268 <Name>办中行ETC 免费送OBU设备</Name> 269 </EventText> 270 </Event> 271 <Event eventid="03048" begintime="20171103194000" duration="002100" eventtype="11"> 272 <EventText language="chi"> 273 <Name>焦点访谈</Name> 274 <ShortDescription /> 275 </EventText> 276 </Event> 277 <Event begintime="20171103200100" eventtype="11" eventid="03049" duration="000100"> 278 <EventText language="chi"> 279 <Name>办中行ETC 免费送OBU设备</Name> 280 </EventText> 281 </Event> 282 <Event eventid="03050" begintime="20171103200200" duration="000400" eventtype="11"> 283 <EventText language="chi"> 284 <Name>前情提要:青恋(24)</Name> 285 <ShortDescription /> 286 </EventText> 287 </Event> 288 <Event begintime="20171103200600" eventtype="11" eventid="03051" duration="000100"> 289 <EventText language="chi"> 290 <Name>办中行ETC 免费送OBU设备</Name> 291 </EventText> 292 </Event> 293 <Event eventid="03052" begintime="20171103200700" duration="005200" eventtype="11"> 294 <EventText language="chi"> 295 <Name>青恋(24)</Name> 296 <ShortDescription /> 297 </EventText> 298 </Event> 299 <Event begintime="20171103205900" eventtype="11" eventid="03053" duration="000100"> 300 <EventText language="chi"> 301 <Name>办中行ETC 免费送OBU设备</Name> 302 </EventText> 303 </Event> 304 <Event eventid="03054" begintime="20171103210000" duration="005900" eventtype="11"> 305 <EventText language="chi"> 306 <Name>机智过人Ⅰ(6)</Name> 307 <ShortDescription /> 308 </EventText> 309 </Event> 310 <Event begintime="20171103215900" eventtype="11" eventid="03055" duration="000100"> 311 <EventText language="chi"> 312 <Name>办中行ETC 免费送OBU设备</Name> 313 </EventText> 314 </Event> 315 <Event eventid="03056" begintime="20171103220000" duration="004100" eventtype="11"> 316 <EventText language="chi"> 317 <Name>晚间新闻</Name> 318 <ShortDescription /> 319 </EventText> 320 </Event> 321 <Event begintime="20171103224100" eventtype="11" eventid="03057" duration="000100"> 322 <EventText language="chi"> 323 <Name>办中行ETC 免费送OBU设备</Name> 324 </EventText> 325 </Event> 326 <Event eventid="03058" begintime="20171103224200" duration="005500" eventtype="11"> 327 <EventText language="chi"> 328 <Name>机智过人Ⅰ(6)</Name> 329 <ShortDescription /> 330 </EventText> 331 </Event> 332 <Event begintime="20171103233700" eventtype="11" eventid="03059" duration="000100"> 333 <EventText language="chi"> 334 <Name>办中行ETC 免费送OBU设备</Name> 335 </EventText> 336 </Event> 337 <Event eventid="03060" begintime="20171103233800" duration="002000" eventtype="11"> 338 <EventText language="chi"> 339 <Name>加油向未来(9)</Name> 340 <ShortDescription /> 341 </EventText> 342 </Event> 343 <Event begintime="20171103235800" eventtype="11" eventid="03061" duration="000100"> 344 <EventText language="chi"> 345 <Name>办中行ETC 免费送OBU设备</Name> 346 </EventText> 347 </Event> 348 <Event eventid="03062" begintime="20171103235900" duration="012600" eventtype="22"> 349 <EventText language="chi"> 350 <Name>结束</Name> 351 <ShortDescription /> 352 </EventText> 353 </Event> 354 <Event eventid="04001" begintime="20171104012500" duration="000800" eventtype="00"> 355 <EventText language="chi"> 356 <Name>生活提示</Name> 357 <ShortDescription /> 358 </EventText> 359 </Event> 360 <Event eventid="04002" begintime="20171104013300" duration="003200" eventtype="11"> 361 <EventText language="chi"> 362 <Name>晚间新闻</Name> 363 <ShortDescription /> 364 </EventText> 365 </Event> 366 <Event eventid="04003" begintime="20171104020500" duration="004500" eventtype="11"> 367 <EventText language="chi"> 368 <Name>动物世界</Name> 369 <ShortDescription /> 370 </EventText> 371 </Event> 372 <Event eventid="04004" begintime="20171104025000" duration="001000" eventtype="11"> 373 <EventText language="chi"> 374 <Name>精彩1刻:航拍中国-陕西</Name> 375 <ShortDescription /> 376 </EventText> 377 </Event> 378 <Event eventid="04005" begintime="20171104030000" duration="012900" eventtype="11"> 379 <EventText language="chi"> 380 <Name>中国诗词大会Ⅱ:第二场</Name> 381 <ShortDescription /> 382 </EventText> 383 </Event> 384 <Event eventid="04006" begintime="20171104042900" duration="002800" eventtype="11"> 385 <EventText language="chi"> 386 <Name>今日说法</Name> 387 <ShortDescription /> 388 </EventText> 389 </Event> 390 <Event eventid="04007" begintime="20171104045700" duration="003000" eventtype="11"> 391 <EventText language="chi"> 392 <Name>新闻联播</Name> 393 <ShortDescription /> 394 </EventText> 395 </Event> 396 <Event eventid="04008" begintime="20171104052700" duration="003200" eventtype="11"> 397 <EventText language="chi"> 398 <Name>人与自然</Name> 399 <ShortDescription /> 400 </EventText> 401 </Event> 402 <Event begintime="20171104055900" eventtype="11" eventid="04009" duration="000100"> 403 <EventText language="chi"> 404 <Name>办中行ETC 免费送OBU设备</Name> 405 </EventText> 406 </Event> 407 <Event eventid="04010" begintime="20171104060000" duration="023500" eventtype="11"> 408 <EventText language="chi"> 409 <Name>朝闻天下</Name> 410 <ShortDescription /> 411 </EventText> 412 </Event> 413 <Event begintime="20171104083500" eventtype="11" eventid="04011" duration="000100"> 414 <EventText language="chi"> 415 <Name>办中行ETC 免费送OBU设备</Name> 416 </EventText> 417 </Event> 418 <Event eventid="04012" begintime="20171104083600" duration="004700" eventtype="11"> 419 <EventText language="chi"> 420 <Name>太行山上(17)</Name> 421 <ShortDescription /> 422 </EventText> 423 </Event> 424 <Event begintime="20171104092300" eventtype="11" eventid="04013" duration="000100"> 425 <EventText language="chi"> 426 <Name>办中行ETC 免费送OBU设备</Name> 427 </EventText> 428 </Event> 429 <Event eventid="04014" begintime="20171104092400" duration="004800" eventtype="11"> 430 <EventText language="chi"> 431 <Name>太行山上(18)</Name> 432 <ShortDescription /> 433 </EventText> 434 </Event> 435 <Event begintime="20171104101200" eventtype="11" eventid="04015" duration="000100"> 436 <EventText language="chi"> 437 <Name>办中行ETC 免费送OBU设备</Name> 438 </EventText> 439 </Event> 440 <Event eventid="04016" begintime="20171104101300" duration="014600" eventtype="11"> 441 <EventText language="chi"> 442 <Name>加油向未来(9)</Name> 443 <ShortDescription /> 444 </EventText> 445 </Event> 446 <Event begintime="20171104115900" eventtype="11" eventid="04017" duration="000100"> 447 <EventText language="chi"> 448 <Name>办中行ETC 免费送OBU设备</Name> 449 </EventText> 450 </Event> 451 <Event eventid="04018" begintime="20171104120000" duration="003500" eventtype="11"> 452 <EventText language="chi"> 453 <Name>新闻30分</Name> 454 <ShortDescription /> 455 </EventText> 456 </Event> 457 <Event begintime="20171104123500" eventtype="11" eventid="04019" duration="000100"> 458 <EventText language="chi"> 459 <Name>办中行ETC 免费送OBU设备</Name> 460 </EventText> 461 </Event> 462 <Event eventid="04020" begintime="20171104123600" duration="003800" eventtype="11"> 463 <EventText language="chi"> 464 <Name>今日说法</Name> 465 <ShortDescription /> 466 </EventText> 467 </Event> 468 <Event begintime="20171104131400" eventtype="11" eventid="04021" duration="000100"> 469 <EventText language="chi"> 470 <Name>办中行ETC 免费送OBU设备</Name> 471 </EventText> 472 </Event> 473 <Event eventid="04022" begintime="20171104131500" duration="010100" eventtype="11"> 474 <EventText language="chi"> 475 <Name>寻宝-我有传家宝</Name> 476 <ShortDescription /> 477 </EventText> 478 </Event> 479 <Event begintime="20171104141600" eventtype="11" eventid="04023" duration="000100"> 480 <EventText language="chi"> 481 <Name>办中行ETC 免费送OBU设备</Name> 482 </EventText> 483 </Event> 484 <Event eventid="04024" begintime="20171104141700" duration="005000" eventtype="11"> 485 <EventText language="chi"> 486 <Name>鸡毛飞上天(19)</Name> 487 <ShortDescription /> 488 </EventText> 489 </Event> 490 <Event begintime="20171104150700" eventtype="11" eventid="04025" duration="000100"> 491 <EventText language="chi"> 492 <Name>办中行ETC 免费送OBU设备</Name> 493 </EventText> 494 </Event> 495 <Event eventid="04026" begintime="20171104150800" duration="004900" eventtype="11"> 496 <EventText language="chi"> 497 <Name>鸡毛飞上天(20)</Name> 498 <ShortDescription /> 499 </EventText> 500 </Event> 501 <Event begintime="20171104155700" eventtype="11" eventid="04027" duration="000100"> 502 <EventText language="chi"> 503 <Name>办中行ETC 免费送OBU设备</Name> 504 </EventText> 505 </Event> 506 <Event eventid="04028" begintime="20171104155800" duration="004800" eventtype="11"> 507 <EventText language="chi"> 508 <Name>鸡毛飞上天(21)</Name> 509 <ShortDescription /> 510 </EventText> 511 </Event> 512 <Event begintime="20171104164600" eventtype="11" eventid="04029" duration="000100"> 513 <EventText language="chi"> 514 <Name>办中行ETC 免费送OBU设备</Name> 515 </EventText> 516 </Event> 517 <Event eventid="04030" begintime="20171104164700" duration="005600" eventtype="11"> 518 <EventText language="chi"> 519 <Name>鸡毛飞上天(22)</Name> 520 <ShortDescription /> 521 </EventText> 522 </Event> 523 <Event begintime="20171104174300" eventtype="11" eventid="04031" duration="000100"> 524 <EventText language="chi"> 525 <Name>办中行ETC 免费送OBU设备</Name> 526 </EventText> 527 </Event> 528 <Event eventid="04032" begintime="20171104174400" duration="001500" eventtype="11"> 529 <EventText language="chi"> 530 <Name>中国梦歌曲:大地芬芳</Name> 531 <ShortDescription /> 532 </EventText> 533 </Event> 534 <Event begintime="20171104175900" eventtype="11" eventid="04033" duration="000100"> 535 <EventText language="chi"> 536 <Name>办中行ETC 免费送OBU设备</Name> 537 </EventText> 538 </Event> 539 <Event eventid="04034" begintime="20171104180000" duration="005900" eventtype="11"> 540 <EventText language="chi"> 541 <Name>机智过人Ⅰ(6)</Name> 542 <ShortDescription /> 543 </EventText> 544 </Event> 545 <Event begintime="20171104185900" eventtype="11" eventid="04035" duration="000100"> 546 <EventText language="chi"> 547 <Name>办中行ETC 免费送OBU设备</Name> 548 </EventText> 549 </Event> 550 <Event eventid="04036" begintime="20171104190000" duration="002900" eventtype="11"> 551 <EventText language="chi"> 552 <Name>新闻联播</Name> 553 <ShortDescription /> 554 </EventText> 555 </Event> 556 <Event begintime="20171104192900" eventtype="11" eventid="04037" duration="000100"> 557 <EventText language="chi"> 558 <Name>办中行ETC 免费送OBU设备</Name> 559 </EventText> 560 </Event> 561 <Event eventid="04038" begintime="20171104193000" duration="000800" eventtype="11"> 562 <EventText language="chi"> 563 <Name>天气预报</Name> 564 <ShortDescription /> 565 </EventText> 566 </Event> 567 <Event begintime="20171104193800" eventtype="11" eventid="04039" duration="000100"> 568 <EventText language="chi"> 569 <Name>办中行ETC 免费送OBU设备</Name> 570 </EventText> 571 </Event> 572 <Event eventid="04040" begintime="20171104193900" duration="002300" eventtype="11"> 573 <EventText language="chi"> 574 <Name>焦点访谈</Name> 575 <ShortDescription /> 576 </EventText> 577 </Event> 578 <Event begintime="20171104200200" eventtype="11" eventid="04041" duration="000100"> 579 <EventText language="chi"> 580 <Name>办中行ETC 免费送OBU设备</Name> 581 </EventText> 582 </Event> 583 <Event eventid="04042" begintime="20171104200300" duration="015600" eventtype="11"> 584 <EventText language="chi"> 585 <Name>星光大道</Name> 586 <ShortDescription /> 587 </EventText> 588 </Event> 589 <Event begintime="20171104215900" eventtype="11" eventid="04043" duration="000100"> 590 <EventText language="chi"> 591 <Name>办中行ETC 免费送OBU设备</Name> 592 </EventText> 593 </Event> 594 <Event eventid="04044" begintime="20171104220000" duration="003800" eventtype="11"> 595 <EventText language="chi"> 596 <Name>晚间新闻</Name> 597 <ShortDescription /> 598 </EventText> 599 </Event> 600 <Event begintime="20171104223800" eventtype="11" eventid="04045" duration="000100"> 601 <EventText language="chi"> 602 <Name>办中行ETC 免费送OBU设备</Name> 603 </EventText> 604 </Event> 605 <Event eventid="04046" begintime="20171104223900" duration="010000" eventtype="11"> 606 <EventText language="chi"> 607 <Name>开讲啦</Name> 608 <ShortDescription /> 609 </EventText> 610 </Event> 611 <Event begintime="20171104233900" eventtype="11" eventid="04047" duration="000100"> 612 <EventText language="chi"> 613 <Name>办中行ETC 免费送OBU设备</Name> 614 </EventText> 615 </Event> 616 <Event eventid="04048" begintime="20171104234000" duration="001800" eventtype="11"> 617 <EventText language="chi"> 618 <Name>星光大道</Name> 619 <ShortDescription /> 620 </EventText> 621 </Event> 622 <Event begintime="20171104235800" eventtype="11" eventid="04049" duration="000100"> 623 <EventText language="chi"> 624 <Name>办中行ETC 免费送OBU设备</Name> 625 </EventText> 626 </Event> 627 <Event eventid="04050" begintime="20171104235900" duration="012400" eventtype="22"> 628 <EventText language="chi"> 629 <Name>结束</Name> 630 <ShortDescription /> 631 </EventText> 632 </Event>
说明: 1.修改后的xml间隔插入了广告,如从每天的6点开始接下来每天6点都要插入广告
2.eventid,begintime,duration进行了变化如eventid = 1 ----------> 03001
3.原xml的eventid每一天是相连的,即第一天结束eventid是35,第二天开始的eventid是36但是
修改后的eventid是每天从1开始
4.广告的持续时间是确定的
个人思路:插入广告后再进行属性的调整
知识点1:间隔插入节点
插入节点之前需要准备好用到的adEvent(广告节点)我已经提前创建,已经插入广告的时间点(timeIndex),后面会给出对应的方法
最初的想法是遍历节点的集合进行i+=2的操作,突然发现这种想法的致命缺陷在于间隔插入要求i+=2和遍历要求的i++互相冲突,于是开始思考采用分组的方式来避免
仔细观察了下xml文档,发现可以用每天的结束标签进行分组,于是先获得结束标签的索引,然后遍历每个组进行插入,有人可能问了,这样不还是冲突.实际上这个时候的遍历和间隔插入已经不再使用同一个参数i了所以不再有冲突
注意:1.使用了java集合的sublist(...)方法进行集合的截取操作
2.要使用Element对象的clone方法,否则会报 The Content already has an existing parent xxx的异常
1 //获得结束标签的索引
2 List<Integer> endIndex = new ArrayList<Integer>();
3 for(int i=1; i<events.size(); i++){
4 if("22".equals(events.get(i).attributeValue("eventtype"))) {
5 endIndex.add(i);
6 }
7 }
8 System.out.println();
9 //分组处理 跳过第一个channelText
10 List<Element> list = new ArrayList<Element>();
11 int count = 0;
12 if(timeIndex <=endIndex.get(0)) {
13 for(int i=0;i<endIndex.size(); i++) {
14 if(i == 0) {
15 list = events.subList(1,endIndex.get(i)+1);
16 //插入广告
17 for(int j=timeIndex; j<list.size();j+=2) {
18 list.add(j,(Element)adEvent.clone());
19 count++;//计算插入了多少个广告
20 }
21 }else {
22 list = events.subList(endIndex.get(i-1)+1+count,endIndex.get(i)+1+count);
23 for(int j=timeIndex; j<list.size();j+=2) {
24 list.add(j,(Element)adEvent.clone());
25 count++;
26 }
27 }
28 }
29 }else {
30 //为了应对插入的节点不从第一天开始
31 for(int i=0;i<endIndex.size()-1; i++) {
32 int temp1 = timeIndex - endIndex.get(i);
33 int temp2 = timeIndex - endIndex.get(i+1);
34 if(temp1 >0 && temp2 <0) {
35 /*System.out.println("temp1----|" + temp1);
36 System.out.println("temp2-----|" + temp2);*/
37 for(int j=i+1;j<endIndex.size();j++) {
38 list = events.subList(endIndex.get(j-1)+1+count,endIndex.get(j)+1+count);
39 for(int m= temp1; m<list.size()-1;m+=2) {
40 list.add(m,(Element)adEvent.clone());
41 count++;
42 }
43 }
44 }
45 }
46
47 }
以下的方法涉及的参数Map<String,String> propertiesMap是封装了的配置文件的信息
获得timeIndex的方法
1 /** 2 * 3 * @param beginTime -- 广告的开始时间点 4 * @return 该时间点的索引 5 */ 6 public static int getTimeIndex(Document document,String beginTime) { 7 List<Element> events = document.getRootElement() 8 .element("SchedulerData") 9 .element("Channel").elements(); 10 System.out.println("===" + beginTime); 11 Long long_beginTime1 = Long.parseLong(beginTime); 12 for(int i=1;i<events.size()-1; i++) { 13 if(beginTime.equals(events.get(i).attributeValue("begintime"))) { 14 return i; 15 }else { 16 Long long_beginTime2 = Long.parseLong(events.get(i).attributeValue("begintime")); 17 Long long_beginTime3 = Long.parseLong(events.get(i+1).attributeValue("begintime")); 18 Long duration = Long.parseLong(events.get(i).attributeValue("duration")); 19 Long temp1 = long_beginTime1 - long_beginTime2; 20 Long temp2 = long_beginTime1 - long_beginTime3; 21 if(temp1 > 0 && temp2 <0){ 22 return i; 23 } 24 } 25 } 26 return 0; 27 }
使用timeIndex时要特别注意,一旦timeIndex为0说明节目的日期变了,此时要校对广告的开始时间
1 if(timeIndex == 0) {
2 String begin = events.get(1).attributeValue("begintime");
3 beginTime = beginTime.replace(beginTime.substring(0,8),begin.substring(0,8));
4 timeIndex = getTimeIndex(document, beginTime);
5 }
创建adEvent的方法,调用的时候是从数据库读取广告信息进行创建
1 public static Element createAdElement(Ad ad,String time,Map<String,String> propertiesMap) { 2 if(ad == null) { 3 System.out.println("广告对象为空!"); 4 return null; 5 } 6 Element adElement = DocumentHelper.createElement("Event"); 7 //beginTime 8 if(ad.getBeginDate() != null && time != null) { 9 String beginTime = ad.getBeginTime().toString(); 10 beginTime = beginTime.replace(":",""); 11 beginTime = beginTime.substring(0,4); 12 beginTime = time.substring(0,8) + beginTime + "00";// --->20171103083500 13 adElement.addAttribute("begintime",beginTime); 14 } 15 //duration 16 String duration = ad.getDuration(); 17 if(duration != null) { 18 adElement.addAttribute("duration",duration); 19 } 20 //eventtype 21 String adEventType = propertiesMap.get("adEventType"); 22 if(adEventType != null) { 23 adElement.addAttribute("eventtype",adEventType); 24 } 25 26 //eventid 27 String eventId = ""; 28 adElement.addAttribute("eventid",eventId); 29 30 //language 31 String adLanguage ="chi"; 32 Element eventText = adElement.addElement("EventText").addAttribute("language",adLanguage); 33 34 //name节点 35 if(eventText != null) { 36 Element name = eventText.addElement("name"); 37 if(ad.getContent() != null) { 38 name.setText(ad.getContent()); 39 } 40 } 41 return adElement; 42 }
知识点2 更新受到广告影响的节目的开始时间(begintime)以及持续时间(duration)
说明:此方法较为简单,只需判断下一个节点是不是广告从而进行相应的调整即可
1 /** 2 * 修改广告的begintime信息与受到广告影响的节目duration 3 * @param events 4 */ 5 private void updateAdtime(List<Element> events,String adDuration) { 6 for(int i=2;i<events.size();i++) { 7 Attribute duration = events.get(i).attribute("duration"); 8 if(adDuration != null) { 9 if(duration.getText().equals(adDuration)) { 10 String lastNodeBegin = events.get(i-1).attributeValue("begintime"); 11 String lastNodeDuration = events.get(i-1).attributeValue("duration"); 12 if(lastNodeBegin == null || lastNodeDuration == null) { 13 System.out.println("上个节点不存在"); 14 return; 15 } 16 //修改节目的持续时间 17 Long temp = Long.parseLong(lastNodeDuration); 18 temp = temp - Long.parseLong(duration.getText()); 19 events.get(i-1).attribute("duration").setText(temp.toString()); 20 21 //修改后重新获取 22 lastNodeBegin = events.get(i-1).attributeValue("begintime"); 23 lastNodeDuration = events.get(i-1).attributeValue("duration"); 24 25 //设置广告的开始时间 26 Long adBeginTime = Long.parseLong(lastNodeBegin) + Long.parseLong(lastNodeDuration); 27 String strAdBegin = adBeginTime.toString(); 28 Long min = Long.parseLong(strAdBegin.substring(strAdBegin.length()-4)); 29 if( min >= 6000) { 30 adBeginTime = adBeginTime + 10000 -6000; 31 } 32 strAdBegin = adBeginTime.toString(); 33 events.get(i).attribute("begintime").setText(strAdBegin); 34 } 35 } 36 } 37 38 }
知识点3 更新eventid,以1103为例1---->03001, 10------>03010
注意:id和begintime的dd相关,注意判断原id的长度
/** * 修改id * 1-->03001 10--->03010 */ private void updateId(List<Element> events) { if(events.size() == 0) { return; } List<List<Element>> groups = new ArrayList<List<Element>>(); for(int i=1; i<events.size(); i++){ Attribute oldId = events.get(i).attribute("eventid"); String time = events.get(i).attributeValue("begintime"); String sb = ""; if(time != null){ sb = time.substring(6,8); // 截取dd } if(i<10) { sb += "00" + i; }else if(i<100) { sb += "0" + i; } if(oldId != null){ oldId.setText(sb); } if("22".equals(events.get(i).attributeValue("eventtype"))) { if(events.size()> (i+1)) { List<Element> list = events.subList(i+1,events.size()); groups.add(list); } } } for(int i=0; i<groups.size(); i++) { List<Element> subList = groups.get(i); for(int j=0; j<subList.size(); j++) { Attribute oldId = subList.get(j).attribute("eventid"); String time = subList.get(j).attributeValue("begintime"); String sb = ""; if(time != null){ sb = time.substring(6,8); // 截取dd } if(j<10) { sb += "00" + (j+1); }else if(j<100) { sb += "0" + (j+1); } if(oldId != null){ oldId.setText(sb); } } } }
知识点4 生成修改后的xml
1 /**
2 * 将修改后的xml文档重新生成
3 * @param document
4 * @param path
5 * @param encode
6 */
7 public void write(Document document,String path,Map<String,String> propertiesMap) {
8 String channelEncoding = propertiesMap.get("channelEncoding");
9 if(channelEncoding != null) {
10 format.setEncoding(channelEncoding);
11 }
12 format.setNewLineAfterDeclaration(false);
13 File file;
14 try {
15 file = new File(path);
16 if(file.getParentFile().exists()) {
17 file.createNewFile();
18 }else {
19 file.getParentFile().mkdirs();
20 file.createNewFile();
21 }
22 XMLWriter write = new XMLWriter(new FileOutputStream(file,false),format);
23 write.write(document);
24 write.close();
25 } catch (IOException e) {
26 e.printStackTrace();
27 }
28 }