是否可以使用 XPath 从处理指令("定义")中提取值?



我想从以下代码中提取版本号:

<?xml version="1.0" encoding="UTF-8"?>
<Include>
  <?define ProductVersion = "1.0.0.0" ?>
</Include>

我希望输出为:1.0.0.0,可以这样做吗?

如果使用Visual Studio创建基于WIX的安装程序,则可以在.wixproj文件中定义ProductVersion变量。

  <Target Name="BeforeBuild">
    <PropertyGroup>
      <DefineConstants>ProductVersion=1.0</DefineConstants>
      ...
    </PropertyGroup>
  </Target>

这可以通过$(var.ProductVersion)从.wxs文件访问。现在,您可以使用XPath从.wixproj文件中读取DefineConstants的值。这将使您获得ProductVersion = "1.0.0.0"

您可以使用processing-instruction()节点过滤器访问处理指令内容。处理指令中没有定义语义,因此无法直接查询"属性值"。

您可以使用这个XPath(1.0)查询来使用字符串处理获取值:

substring-before(substring-after(/Include/processing-instruction(), '"'), '"')

相关内容

  • 没有找到相关文章

最新更新