Unix中的脚本从文件中删除XML标记和内容

时间:2017-01-24 22:52:53

标签: xml shell unix awk sed

基本上需要从一组由number.xml命名的单个XML文件中删除party实体(以及其间的所有内容)。我尝试了以下但是它并没有完全产生我需要的东西:

$("#gauge").kendoRadialGauge({
    pointer: {
        value: 37.4
    },
    scale: {
        startAngle: -30,
        endAngle: 210,

        minorUnit: 5,
        majorUnit: 25,

        min: 0,
        max: 100,
    }
});

2 个答案:

答案 0 :(得分:2)

解析XML 需要 XML解析器。 使用起来相当简单。删除parties节点:

xmlstarlet ed -P -d '//parties' file.xml
制造

<?xml version="1.0" encoding="UTF-8"?>
<patent-document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" pid="58326519" doc-generation-date="2016-10-11">
  <bibliographic-data>
    <application-reference>
      <pan>46422</pan>
    </application-reference>
    <publication-reference>
      <publication-office>KR</publication-office>
      <patent-publication-date>
        <year>2016</year>
        <month>10</month>
        <day>11</day>
      </patent-publication-date>
    </publication-reference>

  </bibliographic-data>
  <vendor>Any</vendor>
  <document-translation-date>2016-11-24</document-translation-date>M
  <invention-title lang="EN">Cell preservation container for liquid-based cell inspection</invention-title>
  <abstract lang="EN">The present invention relates to a liquid for discharging liquid containing cells and cell may be a sampling which is simply eminent generated in </abstract>
  <comment lang="EN"/>
</patent-document>

答案 1 :(得分:1)

sed -e '/<parties>/,/<\/parties>/d' test.xml

在sed中,您可以使用由逗号分隔的两个模式将sed命令或命令应用于包括匹配模式和在匹配模式之间的行范围。我在这里说d - 删除行 - 从/<parties>//<\/parties>/

这取决于XML的格式。您需要保留的匹配行中没有其他内容。

如果要编辑文件,请在sed中添加-i标志。