0

次のようなヘッダーとフッターを含むxmlファイルがあります。

set "header=<?xml version="1.0" encoding="UTF-8"?><Config   xmlns="http://namespace.com/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">"
set "footer=</Config>"

それらをxmlファイルから削除してから、ヘッダータグとフッタータグの間にある残りのアイテムを読み込みたいです。

私はsedを使用しようとしました。これはLinuxでは機能しますが、Windowsでは何もしません

sed -e "s@%header%@@g" -i.backup xmlFile.xml any suggestions?
4

1 に答える 1

3

Windows では、二重引用符をバックスラッシュでエスケープする必要があります。

@ECHO OFF &SETLOCAL
set "XMLheader=<?xml version=\"1.0\" encoding=\"UTF-8\"?><Config   xmlns=\"http://namespace.com/config\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"2.0\">"
set "footer=</Config>"
sed "s@%xmlHeader%\|%footer%@@g" file

コマンドラインでの例:

    >type file
    <?xml version="1.0" encoding="UTF-8"?><Config   xmlns="http://namespace.com/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">
    <tag1>info1 changes in the loop</tag1>
    <tag2>info2 changes in the loop</tag2>
    </Config>

    >sed "s@<?xml version=\"1.0\" encoding=\"UTF-8\"?><Config   xmlns=\"http://namespace.com/config\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"2.0\">\|</Config>@@g" file

    <tag1>info1 changes in the loop</tag1>
    <tag2>info2 changes in the loop</tag2>

注:コマンドのgフラグはここでは必要ありません。ssed

于 2013-07-30T17:47:59.007 に答える