Xml xslt2.0带regexp的未解析文本
我有纯文本: 输入文本Xml xslt2.0带regexp的未解析文本,xml,regex,xslt-2.0,plaintext,Xml,Regex,Xslt 2.0,Plaintext,我有纯文本: 输入文本 ExternalEvent(GpiIn2: LOW->HI) - AirAction(Play) AirLog <log date="2012-07-22" Audio="123.wav" /> AirLog ExternalEvent(GpiIn2:低->高)-空中动作(播放) 空气记录器 空气记录器 当我使用代码xslt 2.0转换时: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.
ExternalEvent(GpiIn2: LOW->HI) - AirAction(Play)
AirLog
<log date="2012-07-22" Audio="123.wav" />
AirLog
ExternalEvent(GpiIn2:低->高)-空中动作(播放)
空气记录器
空气记录器
当我使用代码xslt 2.0转换时:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="vText" select=
"replace(unparsed-text('file:///c:/123.log'),'\r','')"/>
<xsl:template match="/">
<document>
<xsl:analyze-string select="$vText" regex="'\<'">
<xsl:non-matching-substring><xsl:sequence select="."/></xsl:non-matching-substring>
</xsl:analyze-string>
</document>
</xsl:template>
</xsl:stylesheet>
我得到了xml:
<document>
ExternalEvent(GpiIn2: LOW->HI) - AirAction(Play)
AirLog
<log date="2012-07-22" Audio="123.wav" />
AirLog
</document>
外部事件(GpiIn2:低-高)-空中行动(播放)
空气记录器
日志日期=“2012-07-22”Audio=“123.wav”/
空气记录器
任何人都可以告诉我,我需要向regexp添加格式良好的XML,比如:
<document>
<log date="2012-07-22" Audio="123.wav" >
</document>
使用XSLT2.0处理器,如XmlPrime或Saxon,它已经支持W3C XPath 3.0中的函数,如
解析xml片段
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:param name="url1" select="'file:///c:/123.log'"/>
<xsl:template match="/">
<document>
<xsl:copy-of select="parse-xml-fragment(unparsed-text($url1))//log"/>
</document>
</xsl:template>
</xsl:stylesheet>