2012-01-06 1 views
2

설치의 게시 섹션에 구성 파일을 작성하고 제품의 이전 버전이있는 경우 구성 파일에서 읽어야합니다.XML 구성 파일 (.config)을 쓰거나 읽는 방법

설정 파일 설정 파일 만의 choise 태그의 텍스트를 읽을 만의 choise 태그의 텍스트를 덮어 쓰기하는 방법

<name> 
    abcd 
</name> 
<company> 
    xyz 
</company> 
<choise> 
    choise1 
</choise> 

같은 많은 항목이 있습니다 XML 구성 파일 (의 .config)입니다.

+0

위 설정 파일의 항목에 서식 문제가 있습니다. 그래서 그것에 대한 아래의 설명을 찾아보세요 - ABCD – user1234

+0

코드를 사용 U 매우 – CharlesB

+0

감사를 포맷 XYZ choise1 user1234

답변

2

NSIS는 총 4 개의 XML 플러그 인 중에서 선택할 수 있습니다. (Wizou에 의해) NsisXML를 사용 NsisXML (by Wizou), XML plug-in, NsisXML (by Joel)NsXML

:

Old value: Did not exist 
Saved new value: 709289703 
Completed 

을하고 두 번째 실행에 내가 가지고 : 첫 번째 실행에

Outfile "$%temp%\NSISTest.exe" 
RequestExecutionLevel user 
Installdir "$Temp" 
Showinstdetails show 
!include LogicLib.nsh 
Page InstFiles 

!define XMLFILE "$instdir\myxml.xml" 

Section 
StrCpy $9 "Did not exist" 
nsisXML::create 
nsisXML::load "${XMLFILE}" 
${If} $0 = 0 
    ;build a new basic XML file: 
    nsisXML::create 
    nsisXML::createProcessingInstruction "xml" 'version="1.0" encoding="UTF-8" standalone="yes"' 
    nsisXML::appendChild 
    nsisXML::release $2 
${EndIf} 
nsisXML::select '/choise' 
${If} $2 = 0 
    StrCpy $1 $0 
    nsisXML::createElement "choise" 
    nsisXML::appendChild 
${Else} 
    nsisXML::getText 
    StrCpy $9 $3 
${EndIf} 
DetailPrint "Old value: $9" 
System::Call 'kernel32::GetTickCount()i.r5' ;Get some "random" value to save 
nsisXML::setText "$5" 
nsisXML::release $2 
nsisXML::save "${XMLFILE}" 
nsisXML::release $0 
DetailPrint "Saved new value: $5" 
SectionEnd 

내가 얻을

Old value: 709289703 
Saved new value: 709308687 
Completed 
+1

가장 추천 한 플러그인을? –

+1

@ lysergic-acid : 귀하의 필요에 가장 잘 맞는 것을 사용해야합니다 (나는 그 중 어떤 것도 사용하지 않으므로 어느 것이 가장 최선인지 말할 수 없습니다) – Anders

관련 문제