1

xmllint を使用していくつかの値を抽出する必要がある小さなコマンドを使用して xml 階層をナビゲートできますxmllint --shell xmlfilename

しかし、値を抽出できません。パターン マッチング コマンドは使用したくありませんgrep /。これは既に行われており、成功しているためです。

に関するヘルプをいただければ幸いです。

これが私のドキュメントのpng形式です。300$500$( )を抽出したいvalue

<?xml version="1`.`0" encoding="ISO-8859-1"?>
<adi>
    <asset>
        <electronics item="Mobile" name="Nokia" value="300$" />
        <electronics item="Mobile" name="Sony" value="500$" />
    </asset>
</adi>

別の疑問は、2 つのセットが同じの異なる表現であるかどうかです。

<?xml version="1.0 encoding="ISO-8859-1"?>
<adi>
    <asset>
        <electronics>
            <item> Mobile </item>
            <name>Nokia</name>
            <value>300$</value>
        </electronics>
        <electronics>
            <item> Mobile </item>
            <name>Sony</name>
            <value>500$</value>
        </electronics>
    </asset>
</adi>
4

2 に答える 2

1

2 番目の質問に関しては、これら 2 つのスニペットは同じ XML コンテンツを表していません。属性と子要素は同等ではありません。子要素は任意の XML ツリーのルート要素になることができますが、属性はアトミックです。

たとえば、2 番目のスニペットを次のように変更できます。

<?xml version="1.0 encoding="ISO-8859-1"?>
<adi>
    <asset>
        <electronics>
            <item>
               Mobile
               <sub-item>Phone</sub-item>
            </item>
            <name>Nokia</name>
            <value>300$</value>
        </electronics>
        <electronics>
            <item> Mobile </item>
            <name>Sony</name>
            <value>500$</value>
        </electronics>
    </asset>
</adi>

<sub-item>Phone</sub-item>最初の<item>要素に追加した場所。ただし、item最初のスニペットのように、代わりに属性である if に相当するものはありません。

于 2013-10-04T21:34:46.950 に答える
0

遅れましたが、タグxmllintの検索が最初のページに一致する間、私は今あなたに答えます;)

以下のように --xpath の代わりに --xpath を使用します

xmllint --xpath '//electronics/value/text()' second-xml_file.xml
于 2012-09-29T22:23:40.363 に答える