0
다음 코드가 있는데 일반 텍스트로 추출하려고하지만 그 작업을 수행 할 수 없습니다.Inno 설치 : XML 노드를 추출하여 보여줍니다.
코드가 작동하지만 필요한 것은 ExpandConstant
필드에 표시하는 것입니다. 여러 가지 방법을 시도했지만 지금까지는 행운이 없습니다. 당신이 ExpandConstant
함수 호출에 전달 될 수있는 문자열에 값을 인라인하려면
function LoadValueFromXML(const AFileName, APath: string): string;
var
XMLNode: Variant;
XMLDocument: Variant;
begin
Result := '';
XMLDocument := CreateOleObject('Msxml2.DOMDocument.3.0');
try
XMLDocument.async := False;
XMLDocument.load(AFileName);
if (XMLDocument.parseError.errorCode <> 0) then
MsgBox('The XML file could not be parsed. ' +
XMLDocument.parseError.reason, mbError, MB_OK)
else
begin
XMLDocument.setProperty('SelectionLanguage', 'XPath');
XMLNode := XMLDocument.selectSingleNode(APath);
Result := XMLNode.text;
end;
except
MsgBox('An error occured!' + #13#10 + GetExceptionMessage, mbError, MB_OK);
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = CustomPageID then
CustomEdit.Text := LoadValueFromXML('C:\Games\World_of_Tanks_test\WoTLauncher.xml', '//info/patch_info_urls/item');
end;
procedure ClienteWot();
var
StaticText: TNewStaticText;
begin
StaticText := TNewStaticText.Create(WizardForm);
StaticText.Parent := WizardForm.SelectComponentsPage;
StaticText.Left := 425;
StaticText.Top := ScaleY(40);
StaticText.Font.Style := [fsBold];
//StaticText.Font.Color := clRed;
StaticText.Caption := ExpandConstant('Cliente WOT: -->>> Show XML Url <<<---');
end;
XML f ormat는 줄을 모른다. 노드가 있습니다. 하지만 어쨌든 ' 값 '과 같이 전체 노드 텍스트를 가져 오는 방법을 묻고 있습니까? –
TLama
좋아, 나도 알아하지 못했지만, 그래, 난- 이 값이
patch_info_urls> –
DeXon
그냥 내가 당신의 요구 사항을 가지고 있는지 확실 것에 대해 (이후 상상할 수없는 노드의 값을 원하는 전체 노드 텍스트의 사용). 당신의 예제에서'this value'라는 노드의 값을 얻고 싶습니까? 또는 전체 노드 텍스트 (내가 생각하는 것) '- 이 값은
patch_info_urls> '입니까? –
TLama