首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以用XPath从processing-instruction ('define')中提取值吗?

可以用XPath从processing-instruction ('define')中提取值吗?
EN

Stack Overflow用户
提问于 2013-07-02 14:23:19
回答 2查看 265关注 0票数 2

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

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Include>
  <?define ProductVersion = "1.0.0.0" ?>
</Include>

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-02 17:53:38

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

代码语言:javascript
复制
  <Target Name="BeforeBuild">
    <PropertyGroup>
      <DefineConstants>ProductVersion=1.0</DefineConstants>
      ...
    </PropertyGroup>
  </Target>

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

票数 2
EN

Stack Overflow用户

发布于 2013-07-02 16:37:17

您可以使用processing-instruction()节点筛选器访问处理指令内容。处理指令中没有定义语义,因此不能直接查询“属性值”。

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

代码语言:javascript
复制
substring-before(substring-after(/Include/processing-instruction(), '"'), '"')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17418750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档