首页 > 其他分享 >NSIS_XML_插件中文帮助文档

NSIS_XML_插件中文帮助文档

时间:2023-11-27 21:25:02浏览次数:31  
标签:XML xml 插件 var1 name var2 NSIS var 节点

 

XML NSIS 插件 v2.0

2008 年 Shengalts Aleksander,网名 Instructor ([email protected])

目录

  1. 使用说明
  2. 插件特性
  3. 特殊字符
  4. XML文件示例
  5. 插件函数
 
文件格式
  ${xml::SetCondenseWhiteSpace} "[1|0]"
  ${xml::SetEncoding} "[encoding]"
 
文档文件
  ${xml::LoadFile} "[file]" $var
  ${xml::SaveFile} "[file]" $var
 
声明节点
  ${xml::DeclarationVersion} $var1 $var2
  ${xml::DeclarationEncoding} $var1 $var2
  ${xml::DeclarationStandalone} $var1 $var2
 
文本节点
  ${xml::GetText} $var1 $var2
  ${xml::SetText} "[value]" $var
  ${xml::SetCDATA} "[0|1]" $var
  ${xml::IsCDATA} $var
 
节点值
  ${xml::GetNodeValue} $var
 

${xml::SetNodeValue} "[value]"

 


分级搜索

  ${xml::FindNextElement} "[name]" $var1 $var2
  ${xml::FindCloseElement}
 
分级移动
  ${xml::RootElement} $var1 $var2
  ${xml::FirstChildElement} "[name]" $var1 $var2
  ${xml::FirstChild} "[name]" $var1 $var2
  ${xml::LastChild} "[name]" $var1 $var2
  ${xml::Parent} $var1 $var2
  ${xml::NoChildren} $var
 
同级移动
  ${xml::NextSiblingElement} "[name]" $var1 $var2
  ${xml::NextSibling} "[name]" $var1 $var2
  ${xml::PreviousSibling} "[name]" $var1 $var2
 
层级修改
  ${xml::InsertAfterNode} "[handle]" $var
  ${xml::InsertBeforeNode} "[handle]" $var
  ${xml::InsertEndChild} "[handle]" $var
  ${xml::ReplaceNode} "[handle]" $var
  ${xml::RemoveNode} $var
  ${xml::RemoveAllChild}
 
节点与内存
  ${xml::CreateText} "[text]" $var
  ${xml::CreateNode} "<a>text</a>" $var
  ${xml::CloneNode} $var
  ${xml::FreeNode} "[handle]" $var
 
XPath
  ${xml::XPathString} "[expression]" $var1 $var2
  ${xml::XPathNode} "[expression]" $var
  ${xml::XPathAttribute} "[expression]" $var
 
其他节点功能
  ${xml::NodeHandle} $var
  ${xml::GotoHandle} "[handle]" $var
  ${xml::ElementPath} $var
  ${xml::GotoPath} "[path]" $var
  ${xml::NodeType} $var
  ${xml::Coordinate} $var1 $var2 $var3
 
属性
  ${xml::GetAttribute} "[name]" $var1 $var2
  ${xml::SetAttribute} "[name]" "[value]" $var
  ${xml::RemoveAttribute} "[name]" $var
  ${xml::FirstAttribute} $var1 $var2 $var3
  ${xml::LastAttribute} $var1 $var2 $var3
  ${xml::NextAttribute} $var1 $var2 $var3
  ${xml::PreviousAttribute} $var1 $var2 $var3
  ${xml::CurrentAttribute} $var1 $var2 $var3
  ${xml::SetAttributeName} "[name]"
  ${xml::SetAttributeValue} "[value]"
 
卸载插件
  ${xml::Unload}

 


 

使用说明

XML 插件解析 XML 文档,并从中构建一个可读取、修改和保存的文档对象模型(DOM)。XML 插件及其文档基于 TinyXml (2.5.3) 和 TinyXPath (1.3.1).

插件特性

- 读取/修改 XML 文件。
- 支持 XPath 表达式。
- Unicode UTF-8 支持。
- 独立于 "MSXML.DLL"。
- 支持压缩和非压缩空格。
- 行和列跟踪。

特殊字符

插件识别预定义的 "字符实体",即特殊字符。具体包括:

&amp; & &lt; < &gt; > &quot; " &apos; '

当读取 XML 文档时,将识别这些实体,并将它们翻译成它们的 UTF-8 编码。例如,具有以下 XML 的文本:

Far &amp; Away

在查询时将具有值 "Far & Away",并且在写回到 XML 文件时将作为一个 ampersand(&)写回。此外,任何字符都可以通过其 Unicode 代码点进行指定:语法(& #xA0) " " 或(& #160;) " " 都表示非断行空格字符。

XML文件示例

<?xml version="1.0" encoding="utf-8" standalone="no"?> <!-- COMMENT1 --> <ELEMENT> <ELEMENT2>TEXT</ELEMENT2> <!-- COMMENT2 --> <empty_ELEMENT /> <empty_ELEMENT2 NAME="VALUE" NAME2="VALUE2" /> </ELEMENT>
声明:
根:
节点:
文本:
注释:
属性:
子节点:
父节点:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ELEMENT>
是 ELEMENT, TEXT, COMMENT, DECLARATION
TEXT
COMMENT1 和 COMMENT2
NAME="VALUE" 与 NAME2="VALUE2"
ELEMENT2 是 ELEMENT 的子节点;
ELEMEN 是 ELEMENT2 的父节点


插件函数

${xml::SetCondenseWhiteSpace} "[1|0]"
将所有空白字符压缩为单个空格或不压缩。
"[1|0]"
"1"
"0"

-将所有空白字符压缩为单个空格(默认设置)。
-不压缩所有空白字符。

${xml::SetEncoding} "[encoding]"
设置文档编码。
"[encoding]"
""
"UTF8"
"LEGACY"

-自动检测编码,使用 UTF-8 或 ANSI(默认)
-强制使用 Unicode UTF-8 编码
-强制使用 ANSI 编码

${xml::LoadFile} "[file]" $var
加载文档.
"[file]"
- 加载该文件
$var
"0" 成功
"-1" 出现错误

${xml::SaveFile} "[file]" $var
保存文档.
"[file]"
- 保存此文件,如果为空,则保存当前加载的文件。
$var
"0" 成功
"-1" 出现错误

${xml::DeclarationVersion} $var1 $var2
返回声明节点的 Version 属性的值.
$var1
Version (例如 "1.0")
$var2
"0" 成功
"-1" 出现错误

${xml::DeclarationEncoding} $var1 $var2
返回声明节点的编码属性的值。
$var1
编码属性 (例如 "utf-8")
$var2
"0" 成功
"-1" 出现错误

${xml::DeclarationStandalone} $var1 $var2
返回声明节点的独立属性的值。
$var1
独立属性 (例如 "yes")
$var2
"0" 成功
"-1" 出现错误

${xml::GetText} $var1 $var2
便捷函数,方便访问当前元素内的文本.
$var1
元素文本
$var2
"0" 成功
"-1" 出现错误

${xml::SetText} "[value]" $var
便捷函数,方便设置当前元素的文本.
"[value]"
- 要设置的文本
$var
"0" 成功
"-1" 出现错误

${xml::SetCDATA} "[0|1]" $var
打开或关闭当前元素文本的 CDATA 表示.
"[0|1]"
"0" - 关闭(默认)
"1" - 打开
$var
"0" 成功
"-1" 出现错误

${xml::IsCDATA} $var
查询是否使用 CDATA 区段表示此文本.
$var
"1" 当前节点使用 CDATA
"0" 未使用 CDATA
"-1" 当前节点不是文本

${xml::GetNodeValue} $var
获取当前节点的值
$var
节点值

${xml::SetNodeValue} "[value]"
设置当前节点的值.
"[value]"
- 设置此值

${xml::FindNextElement} "[name]" $var1 $var2
搜索元素(递归),返回元素名称并跳转到该元素.
"[name]"
- 由名称指定的元素,如果为空则返回所有找到的元素
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::FindCloseElement}
关闭由 xml::FindNextElement 打开的搜索


${xml::RootElement} $var1 $var2
返回根元素的名称并跳转到该元素.
$var1
根元素的名称 (唯一的顶级元素)
$var2
"0" 成功
"-1" 出现错误

${xml::FirstChildElement} "[name]" $var1 $var2
返回第一个子元素名称并转到该子元素.
"[name]"
- 查找由名称指定的第一个子元素,如果为空则返回第一个找到的元素
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::FirstChild} "[name]" $var1 $var2
返回第一个子节点名称并转到该名称.
"[name]"
- 查找由名称指定的第一个子节点,如果为空则返回第一个找到的节点
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::LastChild} "[name]" $var1 $var2
返回最后一个子节点名称并转到该名称.
"[name]"
- 查找由名称指定的最后一个子节点,如果为空则返回最先找到的
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::Parent} $var1 $var2
返回父元素名称并转到该名称。
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::NoChildren} $var
检查当前节点是否有子节点.
$var
"1" 当前节点没有子节点
"0"当前节点有子节点

${xml::NextSiblingElement} "[name]" $var1 $var2
返回下一个同级元素名称并转到它.
"[name]"
- 查找由名称指定的下一个同级元素,如果为空则返回第一个找到的元素
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::NextSibling} "[name]" $var1 $var2
返回下一个同级节点名称并转到它.
"[name]"
- 查找由名称指定的下一个同级节点,如果为空则返回第一个找到的节点
$var1
名称
$var2
"0" 成功
"-1" 出现错误

${xml::PreviousSibling} "[name]" $var1 $var2
返回上一个同级节点名称并转到该名称.
"[name]"
- 查找由名称指定的前一个同级节点,如果为空则返回第一个找到的节点
$var1
名称
$var2
"0" 成功
"-1" 错误

${xml::InsertAfterNode} "[handle]" $var
在当前节点后添加新节点并跳转到该新节点.
"[handle]"
- 插入此节点
(句柄由 xml::NodeHandle, xml::CreateText, xml::CreateNode, xml::CloneNode 返回)
$var
"0" 成功
"-1" 错误

${xml::InsertBeforeNode} "[handle]" $var
在当前节点之前添加新节点并转到该节点.
"[handle]"
- 插入该节点
(句柄由 xml::NodeHandle, xml::CreateText, xml::CreateNode, xml::CloneNode 返回)
$var
"0" 成功
"-1" 错误

${xml::InsertEndChild} "[handle]" $var
将新节点添加到当前节点子节点的末尾并转到它.
"[handle]"
- Insert this node
(句柄由 xml::NodeHandle, xml::CreateText, xml::CreateNode, xml::CloneNode 返回)
$var
"0" 成功
"-1" 错误

${xml::ReplaceNode} "[handle]" $var
替换当前节点.
"[handle]"
- 替换为此节点
(句柄由 xml::NodeHandle, xml::CreateText, xml::CreateNode, xml::CloneNode 返回)
$var
"0" 成功
"-1" 错误

${xml::RemoveNode} $var
删除当前节点并转到父元素.
$var
"0" 成功
"-1" 错误

${xml::RemoveAllChild}
删除当前节点的所有子节点 (使其为空).


${xml::CreateText} "[text]" $var
在内存中创建文本节点并返回其句柄.
"[text]"
- 在内存中创建此文本
$var
文本节点的句柄
"0" 错误

${xml::CreateNode} "[text]" $var
在内存中创建节点并返回其句柄.
"[text]"
- 在内存中创建此节点
$var
节点句柄
"0" 错误

${xml::CloneNode} $var
将当前节点复制到内存并返回其句柄.
$var
节点句柄
"0" 错误

${xml::FreeNode} "[handle]" $var
从节点释放内存.
"[handle]"
- Free this node
(句柄由 xml::CreateText, xml::CreateNode, xml::CloneNode 返回)
$var
"0" 成功
"-1" 错误

${xml::XPathString} "[expression]" $var1 $var2
计算一个字符串 XPath 表达式.
"[expression]"
- XPath 表达式 (例如 "count(//@*)")
$var1
结果字符串
$var2
"0" 成功
"-1" 错误

${xml::XPathNode} "[expression]" $var
计算节点 XPath 表达式并跳转到该节点.
"[expression]"
- XPath表达式 (例如 "/a/b")
$var
"0" 成功
"-1" 错误

${xml::XPathAttribute} "[expression]" $var
计算属性的 XPath 表达式并跳转到该属性.
"[expression]"
- XPath 属性 (例如 "/a/b/@attr")
$var
"0" 成功
"-1" 错误

${xml::NodeHandle} $var
返回当前节点句柄.
$var
当前节点句柄
"0" 错误

${xml::GotoHandle} "[handle]" $var
转到指定的节点.
"[handle]"
- Go to this node
(句柄由 xml::NodeHandle 返回)
$var
"0" 成功
"-1" 错误

${xml::ElementPath} $var
返回当前元素路径.
$var
当前元素路径 (例如 "/a/b/c[3]/d")

${xml::GotoPath} "[path]" $var
跳转到指定的路径.
"[path]"
- 跳转到此路径(例如,从根路径 "/a/b[2]/c/d",从当前元素 "a/b[2]/c/d",使用最后一个元素 'b' "a/b[-1]/c/d",使用任意最后一个元素 "a/[-1]/c/d",跳转到文档开头 "")
$var
"0" 成功
"-1" 错误

${xml::NodeType} $var
返回当前节点的类型.
$var
"ELEMENT"
"COMMENT"
"DOCUMENT"
"TEXT"
"DECLARATION"
"UNKNOWN"

${xml::Coordinate} $var1 $var2 $var3
返回文本中的当前节点坐标.
$var1
Row
$var2
Column
$var3
"0" 成功
"-1" 错误

${xml::GetAttribute} "[name]" $var1 $var2
返回当前元素的属性值并转到该属性.
"[name]"
- 查找由名称指定的属性
$var1
属性值
$var2
"0" 成功
"-1" 错误

${xml::SetAttribute} "[name]" "[value]" $var
设置当前元素的属性.
"[name]"
- 属性名称
"[value]"
- 属性值
$var
"0" 成功
"-1" 错误

${xml::RemoveAttribute} "[name]" $var
删除当前元素具有指定名称的属性.
"[name]"
- 属性名称
$var
"0" 成功
"-1" 错误

${xml::FirstAttribute} $var1 $var2 $var3
返回当前元素的第一个属性的名称和值,并跳转到该属性.
$var1
属性名称
$var2
属性值
$var3
"0" 成功
"-1" 错误

${xml::LastAttribute} $var1 $var2 $var3
返回当前元素的最后一个属性的名称和值,并跳转到该属性.
$var1
属性名称
$var2
属性值
$var3
"0" 成功
"-1" 错误

${xml::NextAttribute} $var1 $var2 $var3
返回下一个属性的名称和值并跳转到该属性.
$var1
属性名称
$var2
属性值
$var3
"0" 成功
"-1" 错误

${xml::PreviousAttribute} $var1 $var2 $var3
返回前一个属性的名称和值,并跳转到该属性.
$var1
属性名称
$var2
属性值
$var3
"0" 成功
"-1" 错误

${xml::CurrentAttribute} $var1 $var2 $var3
返回当前属性的名称和值.
$var1
属性名称
$var2
属性值
$var3
"0" 成功
"-1" 错误

${xml::SetAttributeName} "[name]"
设置当前属性的名称.
"[name]"
- 属性名称

 

${xml::SetAttributeValue} "[value]"
设置当前属性的值.
"[value]"
- 属性值

${xml::Unload}
卸载插件.

标签:XML,xml,插件,var1,name,var2,NSIS,var,节点
From: https://www.cnblogs.com/NSIS/p/17860486.html

相关文章

  • 金蝶云星空表单插件传递参数到服务插件
    一、业务需求操作售后单行反关闭时将当前选中行的序号传递到服务端,然后在服务端接收序列号,根据序列号处理相关逻辑。二、开发实现2.1、传递参数售后单表单插件的BeforeDoOperation事件publicoverridevoidBeforeDoOperation(BeforeDoOperationEventArgse){base.Befo......
  • Weblogic < 10.3.6 'wls-wsat' XMLDecoder 反序列化漏洞(CVE-2017-10271)
    Weblogic<10.3.6'wls-wsat'XMLDecoder反序列化漏洞(CVE-2017-10271)Weblogic的WLSSecurity组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。环境搭建cdweblogic/CVE-2017-10271docker-compose......
  • Maven 插件统一修改聚合工程项目版本号
    ......
  • 好用的IDEA插件推荐
    前言Idea是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea还具有许多插件和扩展,可以根据开发人员的需要进行定制和扩展,从而提高开发效率,今天我们就来介绍一款国产的API调试插件:Apipost-Helper什么是Apipost-Helper?Apipost-Helper......
  • 好用的IDEA插件推荐
    前言Idea是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序,Idea还具有许多插件和扩展,可以根据开发人员的需要进行定制和扩展,从而提高开发效率,今天我们就来介绍一款国产的API调试插件:Apipost-Helper什么是Apipost-Helper?Apipost-He......
  • Nodepad++格式化XML和JSON字符串
    (一)格式化XML1、安装XMLTools在notepad++中点击菜单栏【插件】-【插件管理】。在插件管理界面选择【XMLTools】,点击【安装】。2、打开XML文件在notepad++中点击菜单栏【文件】-【打开】。3、选择格式化XML全选XML字符串,点击【插件】-【XMLTools】-【Prettyprint(XMLonl......
  • 个人觉得很实用的IDEA插件
    如下表:插件名称插件描述备注PresentationAssistant演示助手(可以提示操作了什么)Translation翻译AlibabaJavaCodingGuidelines(XenoAmessTPM)代码规范检查RestfulTool接口工具(调试、搜索等)ApifoxHelperApiFox插件SonarlintBug检查插件Chinese(Simplified)LanguagePack中......
  • Live Server插件打开浏览器时:该网页无法正常运作,127.0.0.1未发送任何数据的问题解决
    一、问题复现今天使用VsCode写HTML代码时,使用LiveServer打开预览时,发现浏览器显示“该网页无法正常运作,127.0.0.1未发送任何数据”的问题。二、解决办法1.在左侧工具栏找到扩展商店,找到LiveServer,然后点击对应的小齿轮,进入插件设置。2.选择ExtensionSettings3.进入......
  • 安装 Vue 开发者工具:装插件调试 Vue 应用
    (1)通过谷歌应用商店安装(国外网站)(2)极简插件:下载→ 开发者模式→ 拖拽安装 → 插件详情允许访问文件         https://chrome.zzzmh.cn/index下载的文件,解压。chrome浏览器,右上角点击-》更多工具=》扩展程序。打开开发者模式将解压的文件拖到空白区......
  • Android Studio XML文件没有提示
    长路漫漫唯剑作伴原因:项目从AS3.5.2转到AS4.2.2后出现xml文件没有提示。解决:1.build:gradle:3.5.2换成最新的build:gradle:4.2.22.gradle-wrapper.properties由gradle-5.4.1-all.zip换成4.2.2最低要求版本gradle-6.7.1-all.zip项目下载构建完成即可......