使用xslt解析XML格式的字符串

时间:2014-11-14 20:36:57

标签: xml regex xslt

我在XML文件中有以下数据。

<Message number=1>
    <Field name="option1" type="Enumerated" desc="Interpret this field as the Number to which the Sector is slaved:  0 = Some Text for option 1 = A Different text option  2 = Yet another text option 8 – 10 = Reserved."/>
    <Field name="option2" type="Enumerated" desc="Interpret this field as data rate  4 = 2Mbit 5 = 1Mbit 6 = .5MBit"/>
</Message>
<Message number=2>
    <Field name="option3" type="Enumerated" desc="Interpret this field as the altitute.  0 = 100 feet 1 = 200 feet  2 = 300 feet 3 – 5 = SPARE."/>
</Message>

我想将desc属性解析为以下xml格式:

<Enumerations>
    <Enumeration name="option1">
        <Enumerator value="0" name="Some Text for option"/>
        <Enumerator value="1" name="A Different text option"/>
        <Enumerator value="2" name="Yet another text option"/>
        <Enumerator value="8" name="Reserved"/>
        <Enumerator value="9" name="Reserved"/>
        <Enumerator value="10" name="Reserved"/>
    </Enumeration>
    <Enumeration name="option2">
        <Enumerator value="4" name="2Mbit"/>
        <Enumerator value="5" name="1Mbit"/>
        <Enumerator value="6" name=".5MBit"/>
    </Enumeration>
    <Enumeration name="option3">
        <Enumerator value="0" name="100 feet"/>
        <Enumerator value="1" name="200 feet"/>
        <Enumerator value="2" name="300 feet"/>
        <Enumerator value="3" name="SPARE"/>
        <Enumerator value="4" name="SPARE"/>
        <Enumerator value="5" name="SPARE"/>
    </Enumeration>
<Enumerations>

我遇到的问题是我的数据xml文件(超过4K行)对于字符串的枚举部分有不同的起始字符(:或,或#34;&#34;)。

虽然我可以使用xsl:analyze-string,但我无法确定正确的正则表达式。

0 个答案:

没有答案