0

1 つの XPATH で済むとは思わないので、アイデアを説明するためのものです。簡単な Python スクリプトを作成できることはわかっていますが、Oxygen などのツールを使用したいと考えています (可能であれば xmlstarlet ではありません!)。

次のxmlがあるとします。

<?xml version="1.0" encoding="UTF-8"?>
<model>
    <object name='obj1'>
        <field type='int' name='fld1'/>
        <field type='string' name='fld2'/>
    </object>
</model>

すべてのintフィールドの名前が必要です。簡単だ:

/model/object/field[@type='int']/@name

ここで、フィールド名とともにオブジェクト名を出力したいとします。どうすればいいですか?
私は XSLT が答えだと思います...問題は、私はそれをほとんど覚えておらず、Oxygen でそれを操作する方法を見つけることができないということです。

編集: 期待される出力
obj1 fld1
obj2 fld7 (xml にあると仮定)

4

3 に答える 3

1

xpath 2.0 では、次のように作成できます。

for $x in /model/object/field[@type = 'int'] return concat($x/@name, ' ', $x/../@name)

戻る

fld1 obj1
于 2013-10-01T13:47:44.707 に答える
1

投稿された XPath 2.0 ソリューションの代わりに、 を使用for .. inすることもできます/model/object/field[@type='int']/concat(../@name, ':', @name)

于 2013-10-01T14:06:17.010 に答える