在 MSDEPLOY.EXE 部署期间,我试图将参数喷射到 XML 配置文件中,但配置值存储在 CDATA 元素中。以下是名为 paths.xml 的文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<course>
<questionnaires><![CDATA[https://www.site.com/somepage.asp]]></questionnaires>
</course>
我需要将该 URL 转换为不同的东西,但我无法为我的 parameters.xml 文件找出正确的 XPATH 和语法,这就是我现在得到的:
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<parameter name="QuestPath" description="Questionnaires path" defaultValue="<questionnaires><![CDATA[https://www.foo.com/somepage.asp]]></questionnaires>" tags="">
<parameterEntry kind="XmlFile" scope="paths.xml$" match="/course/questionnaires" />
</parameter>
</parameters>
我在引用 CDATA 元素来替换它时运气不佳,因此您可以看到我现在正在尝试替换整个问卷元素,包括其 CDATA 内容。我不得不对嵌入的尖括号进行一些转义,因此不会因为无效的 XML 格式而拒绝 parameters.xml。
现在,生成的 paths.xml 最终如下:
<?xml version="1.0" encoding="UTF-8"?>
<course>
<questionnaires>https://www.foo.com/somepage.asp</questionnaires>
</course>
因此,某些东西仅将 CDATA 元素解析为它的内容,并且 CDATA 不再出现在 paths.xml 中,我认为这将导致读取它的程序失败。帮助!