复杂xml的XML到HTML转换

时间:2013-11-21 08:39:12

标签: html xml

我正在尝试将一个大的xml文件转换为html。  我在这里有害虫xml文件的一部分。  在xml文件中有重复的标记。 像标题标记可以多次出现在xml中。 但在body标签内只有一个标头标签。 在内部标题标记中有另一个子标记,我希望获得所有值,如Employee_B_ID,登录ID,租用日期,费率和显示为表格格式。

<?xml version="1.0" encoding="UTF-8"?>
        <report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.23" id="1">
        ------
        ----
        -----
        <body>
                <image id="258">
                    <property name="height">0.9375in</property>
                    <property name="width">3.5104166666666665in</property>
                    <property name="source">embed</property>
                    <property name="imageName">logo-new - Copy.jpg</property>
                </image>
                <label id="245">
                    <property name="fontFamily">sans-serif</property>
                    <property name="fontSize">x-large</property>
                    <property name="fontWeight">bold</property>
                    <property name="textAlign">center</property>
                    <text-property name="text">Employee Information</text-property>
                </label>
                <table id="163">
                    <property name="width">100%</property>
                    <property name="dataSet">Data Set</property>
                    <property name="refTemplateParameter">NewTemplateParameterDefinition2</property>
                    <list-property name="paramBindings">
                        <structure>
                            <property name="paramName">b_id</property>
                            <simple-property-list name="expression">
                                <value type="javascript">params["b_id"]</value>
                            </simple-property-list>
                        </structure>
                    </list-property>
                    <list-property name="boundDataColumns">
                        <structure>
                            <property name="name">BusinessEntityID</property>
                            <text-property name="displayName">BusinessEntityID</text-property>
                            <expression name="expression" type="javascript">dataSetRow["BusinessEntityID"]</expression>
                            <property name="dataType">integer</property>
                        </structure>
                        <structure>
                            <property name="name">LoginID</property>
                            <text-property name="displayName">LoginID</text-property>
                            <expression name="expression" type="javascript">dataSetRow["LoginID"]</expression>
                            <property name="dataType">string</property>
                        </structure>
                        <structure>
                            <property name="name">HireDate</property>
                            <text-property name="displayName">HireDate</text-property>
                            <expression name="expression" type="javascript">dataSetRow["HireDate"]</expression>
                            <property name="dataType">string</property>
                        </structure>
                        <structure>
                            <property name="name">Rate</property>
                            <text-property name="displayName">Rate</text-property>
                            <expression name="expression" type="javascript">dataSetRow["Rate"]</expression>
                            <property name="dataType">decimal</property>
                        </structure>
                    </list-property>
                    <property name="pageBreakInterval">50</property>
                    <column id="187"/>
                    <column id="188"/>
                    <column id="189"/>
                    <column id="190"/>
                    <header>
                        <row id="164">
                            <cell id="165">
                                <label id="166">
                                    <property name="fontFamily">sans-serif</property>
                                    <property name="fontWeight">bold</property>
                                    <text-property name="text">Employee_B_ID</text-property>
                                </label>
                            </cell>
                            <cell id="167">
                                <label id="168">
                                    <property name="fontFamily">sans-serif</property>
                                    <property name="fontWeight">bold</property>
                                    <text-property name="text">Login ID</text-property>
                                </label>
                            </cell>
                            <cell id="169">
                                <label id="170">
                                    <property name="fontFamily">sans-serif</property>
                                    <property name="fontWeight">bold</property>
                                    <text-property name="text">Hire Date</text-property>
                                </label>
                            </cell>
                            <cell id="171">
                                <label id="172">
                                    <property name="fontFamily">sans-serif</property>
                                    <property name="fontWeight">bold</property>
                                    <text-property name="text">Rate</text-property>
                                </label>
                            </cell>
                        </row>
                    </header>
                    <detail>
                        <row id="173">
                            <cell id="174">
                                <data id="250">
                                    <property name="resultSetColumn">BusinessEntityID</property>
                                </data>
                            </cell>
                            <cell id="176">
                                <data id="251">
                                    <property name="resultSetColumn">LoginID</property>
                                </data>
                            </cell>
                            <cell id="178">
                                <data id="252">
                                    <property name="resultSetColumn">HireDate</property>
                                </data>
                            </cell>
                            <cell id="180">
                                <data id="253">
                                    <property name="resultSetColumn">Rate</property>
                                </data>
                            </cell>
                        </row>
                    </detail>
                    <footer>
                        <row id="182">
                            <cell id="183"/>
                            <cell id="184"/>
                            <cell id="185"/>
                            <cell id="186"/>
                        </row>
                    </footer>
                </table>
            </body>
        -------
        -----
        ----
        </report>

如何检索

内的值
   <body><header><text-property name="text">Employee_B_ID</text-property>

我需要以表格格式显示Employee_B_ID,登录ID,租用日期,费率。

任何人都可以帮助我。

由于         Ashim

1 个答案:

答案 0 :(得分:0)

您可以使用XML解析器和您喜欢的编程语言。对于不同的语言,有不同的库可以解析xml,例如java中的JAXB或者ruby中的REXML。在解析XML之后,执行您想要的操作应该相对容易。