2016-09-01 80 views
-2

我有我的名爲Test.xml的xml文件。我只想將xml標記<con:selectedAuthProfile>value</con:selectedAuthProfile>的內容從值替換爲xml標記<con:testStep>中的「Pharmacy-Authorization」,其id =「123456789」。我希望我能爲此找到代碼。 Thankyou提前的傢伙!我會解釋下面的過程。替換批處理文件中的特定XML標記內容

  1. 搜索XML標記<con:testStep type=a id=> id爲 「123456789」
  2. 內部的標籤,我需要更換XML標籤<con:selectedAuthProfile>*</con:selectedAuthProfile>

    下面的內容是代碼:

    <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>的發生。我只想根據其標記爲<con:testStep>的「父母標記」更改此標記的內容,其ID =「123456789」。我希望這將是可能的

+0

它會變得棘手,因爲'*'被批量保留爲通配符。 – Jonas

+0

我只是把*作爲示例內容。我只是編輯它:) – creulo

+0

好吧我有一個解決方案來更改文件中的特定單詞我希望它可以幫助 – Jonas

回答

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. 
) 

複製這兩個腳本爲.txt文件並重新命名爲.bat,還要確保你把它們放在同一個文件夾,你想要的文件編輯。

該程序用單詞Apple替換單詞Orange。你只需要運行Replace.bat

你的輸入文件位於Script1這樣編輯,以滿足你的需求。

相關問題