XMLファイル内の特定の文字列を見つけて別のファイルに保存する

XMLファイル内の特定の文字列を見つけて別のファイルに保存する

入力ファイルのテキストは次のとおりです。

<title>
    <band height="21"  isSplitAllowed="true" >
        <staticText>
            <reportElement
                x="1"
                y="1"
                width="313"
                height="20"
                key="staticText-1"/>
                <box></box>
                <textElement>
                    <font fontName="Arial" pdfFontName="Helvetica-Bold" size="14" isBold="true" isUnderline="true"/>
                </textElement>
                <text><![CDATA[4) Computation of Tier I and Tier II Capital :]]></text>
        </staticText>
    </band>
</title>

出力ファイルには以下が必要です。

4) Computation of Tier I and Tier II Capital :

ファイルにタグがたくさん<title>あります[CDATA]。しかし、ラベルの下のテキストをコピーし、<title>その<CDATA>出力を別のファイルに保存したいと思います。

ベストアンサー1

**ここで強調表示するために、セクションにシーケンスペアを追加したいようですCDATA。残念ながら、これは間違ったXMLに変わりました。こんな意味だと仮定すると、

<text><![CDATA[4) Computation of Tier I and Tier II Capital :]]></text>

XMLパーサーを使用してXMLを解析できます。

xmlstarlet sel -T -t -v '//text' -n x.xml
4) Computation of Tier I and Tier II Capital :

<text/>「要素の内容」よりも厳しい制約がある場合は、XPathフィルタを適切に調整できます。たとえば、

xmlstarlet sel -T -t -v '/title/band/staticText/text' -n x.xml
4) Computation of Tier I and Tier II Capital :

おすすめ記事