2

次のような XML ファイルのスニペットがあります。

"...<id>90,123</id>...<id>190</id>...<id>123,90</id>...
<id>123,90,123</id>...<id>901</id>"

数字 90 をすべて別の数字、たとえば 100 に置き換えたいと思います。 を使用replace/allすると、190 や 901 などの数字が台無しrejoin replace/all parse str "<>," "91" "147"になり<>,ます。これどうやってするの?

4

1 に答える 1

3

入力が次の場合:

st1: "...<id>90,123</id>...<id>190</id>...<id>123,90</id>...<id>123,90,123</id>...<id>901</id>"

次に、これを試してください:

delimiter: charset ">,<"
s: copy ""
rule: [
    some [
        copy del1 delimiter "90"
        copy del2 delimiter (
            append s rejoin [del1 "100" del2]
        )
    |
        copy c skip (
            print "other char" append s c
        )   
    ]
]
parse st1 rule
print s

出力します:

...<id>100,123</id>...<id>190</id>...<id>123,100</id>...<id>123,100,123</id>...<id>901</id>

これは、赤いバグを見つけるのにも役立ちました:)

于 2013-12-25T14:26:35.137 に答える