2013-11-21 109 views
1

我想将一个大的XML文件转换为HTML。 我有害虫的XML文件在这里的一部分。在xml文件中有 有重复标签。 类似标题标签可以多次出现在xml中。 但在body标签中只有一个标题标签。 内部标题标签还有另一个子标签,我想获得所有的值,如Employee_B_ID,登录ID,聘用日期,费率和显示为表格格式。XML到HTML转换为复杂的XML

<?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

回答

0

您可以使用XML解析器和你喜欢的编程语言。对于不同的语言,有不同的库能够解析xml,例如java中的JAXB或ruby中的REXML。在解析XML之后,你应该相对容易地做你想做的事情。