我正在尝试使用 XSLT 生成 XML,当两个连续节点的属性值为 Position="A" 时,我想生成一个字符串,我想在字符串中添加连字符 (-),否则我想连接节点值。我尝试使用具有属性值的组相邻,但它在空属性节点上失败。我尝试添加 string() 作为属性值,但没有成功。
<xsl:variable name="columnId">
<xsl:for-each-group select="CabinLayout/Columns" group-adjacent="string(@Position)">
<xsl:value-of select="current-group()"/>
</xsl:for-each-group>
</xsl:variable>
<ColumnID><xsl:value-of select="translate($columnId,' ','-')"/></ColumnID>
Run Code Online (Sandbox Code Playgroud)
以下是示例输入和所需的输出
<CabinLayout>
<Columns Position="W">A</Columns>
<Columns>B</Columns>
<Columns Position="A">C</Columns>
<Columns Position="A">D</Columns>
<Columns>E</Columns>
<Columns Position="W">F</Columns>
</CabinLayout>
Run Code Online (Sandbox Code Playgroud)
输出-ABC-DEF
<CabinLayout>
<Columns Position="W">A</Columns>
<Columns>B</Columns>
<Columns>C</Columns>
<Columns Position="A">D</Columns>
<Columns>E</Columns>
<Columns>F</Columns>
<Columns>G</Columns>
<Columns>H</Columns>
<Columns>J</Columns>
<Columns Position="W">K</Columns>
</CabinLayout>
Run Code Online (Sandbox Code Playgroud)
输出:ABCDEFGHJK
<CabinLayout>
<Columns Position="W">A</Columns>
<Columns>B</Columns>
<Columns Position="A">C</Columns>
<Columns Position="A">D</Columns>
<Columns>E</Columns>
<Columns>F</Columns>
<Columns Position="A">G</Columns>
<Columns Position="A">H</Columns>
<Columns>J</Columns>
<Columns Position="W">K</Columns>
</CabinLayout>
Run Code Online (Sandbox Code Playgroud)
输出:ABC-DEFG-HJK
我需要为不同的环境(如 dev、uat 和生产)进行属性配置。例如,一个 config.properties 具有和条目之类的environment=dev,我需要更改为 staging 分支 asenvironment=uat和 master 分支 as environment=prd。
我尝试分别在每个分支中提交这些文件,并尝试在 gitignore 中添加 config.properties 以便它不会在下次提交时考虑。但是 git ignore 没有更新所以我运行了命令
git rm -rf --cached src/config.properties
git add src/config.properties
git commit -m ".gitignore fix"
Run Code Online (Sandbox Code Playgroud)
但是此命令正在从本地存储库本身删除文件,并且正在进行的提交也从分支中删除。我想像这样处理分支,以便 Jenkins 无需手动编辑配置文件即可进行部署。我正在为 git UI 使用 fork。有没有办法处理这种情况?