2016-09-01 7 views
-2

Test.xmlという名前のxmlファイルがあります。私は、xmlタグ<con:selectedAuthProfile>value</con:selectedAuthProfile>の内容だけを、id = "123456789"のxxxタグ<con:testStep>内の値から "Pharmacy-Authorization"に置き換えたいと考えています。私はこのためのコードを見つけることができれば幸いです。事前にみんなありがとう!私は以下のプロセスを説明します。私は、XMLタグの内容以下<con:selectedAuthProfile>*</con:selectedAuthProfile>特定のXMLタグの内容をバッチファイルに置き換えます。

を交換する必要があり、そのタグ内

  1. idで検索XMLタグ<con:testStep type=a id=> = "123456789"
  2. はコードです:

    <con:testStep type="a" name="TestStep 1" id="123456789"> 
        <xml1>XMLVALUE1</xml1> 
        <xml2>XMLVALUE2</xml2> 
        <con:selectedAuthProfile>value</con:selectedAuthProfile> 
    </con:testStep> 
    <con:testStep type="b" name="TestStep 2" id="987654321"> 
        <xml3>XMLVALUE3</xml3> 
        <xml4>XMLVALUE4</xml4> 
        <con:selectedAuthProfile>value</con:selectedAuthProfile> 
    </con:testStep> 
    

XMLには、<con:selectedAuthProfile>value</con:selectedAuthProfile>の2つのインスタンス/オカレンスがあります。私は、このタグの内容を、その親タグ(id = "123456789"の<con:testStep>)に基づいて変更したいだけです。私は可能であることを望む

+0

バッチでは '*'がワイルドカードとして予約されているので、やりにくくなります。 – Jonas

+0

サンプルコンテンツとして*を入れました。私はちょうどそれを編集します:) – creulo

+0

私はファイル内の特定の単語を変更するための解決策を持っています。私はそれが助けてくれることを願っています – Jonas

答えて

2

これは、ファイル内の特定の単語を変更する例です。

2つの.batスクリプトを実行する必要があります。 スクリプトにはScript1.batScript2.batという名前を付けます。

Script1

@ECHO OFF 
Script2.bat "Orange" "Apple" "file.txt" >"newfile.txt" 

Script2

@ECHO OFF 
SETLOCAL ENABLEEXTENSIONS 
SETLOCAL DISABLEDELAYEDEXPANSION 

if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF 
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
    set "line=%%B" 
    if defined line (
     call set "line=echo.%%line:%~1=%~2%%" 
     for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X 
    ) ELSE echo. 
) 

コピーこれらの2つのスクリプト.txtファイルに変換し、.BATするためにそれらの名前を変更し、また必ずあなたが欲しいファイルと同じフォルダに入れて作ります編集する。

このプログラムは、単語Orangeを単語Appleに置き換えます。 Replace.batを実行する必要があります。Script1に入力ファイルがありますので、必要に応じて編集してください。

関連する問題