<xsl:variable name="groups" as="element(group)*">
<xsl:analyze-string regex="^^([0-9-]+)([A-Z ]*)[ ]*([\(](.*)[\)])*$" select="/fault/informations/restriction1">
<xsl:matching-substring>
<group>
<x><xsl:value-of select="regex-group(1)"/></x>
<y><xsl:value-of select="regex-group(4)"/></y>
</group>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:variable>
已经全部进入了
XSL Analyze-String -> Matching-Substring into multiple variables
但我的问题是如何在示例中使用它来进行连接 例如regex-group(1)与正则表达式路径之外的其他元素“/ fault / informations / restriction2”
如此简单的IMPUT XML:
<fault >
<information>
<reference1>22-00 X (AA - 03 StoLAT)</reference1>
<opr>Sample sam (66-33) Sample</opr>
</information>
</fault>
和OUTPUT我想拥有 在一个元素
<mytrouble>
<trouble12>AA - 03 StoLAT , Sample sam Sample</trouble12>
</mytrouble>
所以rgex组4 - 来自<reference1>
的文本内部()和来自opr的全文
PS 目前通过转型:
无法匹配具有所需类型的项目类型错误位置: xsl:stylesheet / xsl:template / xsl:element / xsl:variable / @as
详细信息XTTE0570:变量'groups'的必需项类型是 'element(Q {http://xml.event/1.0} group)', 提供的项目类型为'text()'
伟大的THANX
michael.hor257k
几乎就是 - 只是结果表明标题
<trouble12 xmlns:fn="http://www.w3.org/2005/xpath-functions">AA - 03 StoLATSample sam Sample</trouble12>
答案 0 :(得分:0)
我的问题是如何在示例中使用它来连接例如regex-group(1) 与正则表达式路径之外的其他元素 “/故障/信息/ restriction2”
要引用xsl:analyze-string
指令中的另一个节点,首先将其捕获到变量中 - 例如:
<xsl:variable name="opr" select="fault/information/opr" />
<xsl:analyze-string regex="^^([0-9-]+)([A-Z ]*)[ ]*([\(](.*)[\)])*$" select="fault/information/reference1">
<xsl:matching-substring>
<trouble12>
<xsl:value-of select="regex-group(4)"/>
<xsl:value-of select="$opr"/>
</trouble12>
</xsl:matching-substring>
</xsl:analyze-string>