我想从帧数据下面获取数据文本。
xml输入
<frame name="ENUMERATION LIST" type="" version="0">
<data><![CDATA[0: OFF
1: ACCESSORY
2: RUN
3: START_Request]]></data>
</frame>
我正在寻找下面给出的
<ELEMENTS>
<SW-BASE-TYPE>
<SHORT-NAME>OFF</SHORT-NAME>
</SW-BASE-TYPE>
<SW-BASE-TYPE>
<SHORT-NAME>ACCESSORY</SHORT-NAME>
</SW-BASE-TYPE>
<SW-BASE-TYPE>
<SHORT-NAME>RUN</SHORT-NAME>
</SW-BASE-TYPE>
<SW-BASE-TYPE>
<SHORT-NAME>START_Request</SHORT-NAME>
</SW-BASE-TYPE>
</ELEMENTS>
任何人都可以帮我解决这个问题吗
答案 0 :(得分:1)
使用analyze-string
:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:template match="data">
<ELEMENTS>
<xsl:analyze-string select="." regex="[0-9]+:\s*(.+)">
<xsl:matching-substring>
<SW-BASE-TYPE>
<SHORT-NAME>
<xsl:value-of select="regex-group(1)"/>
</SHORT-NAME>
</SW-BASE-TYPE>
</xsl:matching-substring>
</xsl:analyze-string>
</ELEMENTS>
</xsl:template>
</xsl:stylesheet>