Python-通过读取XML在file.write中产生的“数字:”一词来创建XML

时间:2018-11-08 21:21:23

标签: python xml xlrd

我是Python的新手。我正在尝试使用以下代码生成xml文件:

<!DOCTYPE html>
<html lang="en-us">

<head>
  <title>Lorem ipsum dolor sit amet</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- strongly recommended by the Bootstrap -->
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <link rel="stylesheet" type="text/css" href="app.css">
</head>

<body>
  <div class="container">
    <header class="header">
      <div class="tbl-row">
        <div class="header-left">
          <h1>
            <span>Lorem ipsum dolor sit amet, consectetur adipiscing</span><br/> Excepteur sint occaecat cupidatat<br/> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
          </h1>
        </div>
        <div class="header-spacer"></div>
        <div class="header-right">
          <p>Ut enim ad minim veniam, quis nostrud</p>
        </div>
      </div>
    </header>
    <div class="small-box"></div>

    <!-- CENTER TABLE -->
    <div class="center-table">
      <!-- CENTER ROW -->
      <div class="center-row">

        <div class="vert-spacer"></div>

        <!-- MAIN -->
        <main>
          <div class="main-body">
            <div class="main-body-header">
              <p><strong>WEBCAST</strong>TRANSMITTED LIVE ON</p>
              <p>Sunday, 9 December 2018, 3:00 (EST) from New York, NY</p>
              <div class="hr"></div>
              <p><strong>Webcast:</strong><em>To View From Your Home or Office, Register at:</em></p>
              <p>www.irure dolor in reprehenderit.com</p>
              <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>

            </div>
            <p class="foot-note">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.</p>
            <p class="co-chairs"><span>Co-Chairs:</span> John Jones (Brazil), George Orwell (London, England)</p>
            <table class="table">
              <thead>
                <tr class="header">
                  <th colspan="3">agenda</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td>09:00 – 09:05</td>
                  <td>Welcome and Introduction</td>
                  <td>Co-Chairs</td>
                </tr>
                <tr>
                  <td>09:05 – 09:30</td>
                  <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt</td>
                  <td>John Jones</td>
                </tr>
                <tr class="qa">
                  <td>09:30 – 09:35</td>
                  <td colspan="2">Q&A</td>
                </tr>
                <tr>
                  <td>09:35 – 10:00</td>
                  <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt</td>
                  <td>George Orwell</td>
                </tr>
                <tr class="qa">
                  <td>10:00 – 10:05</td>
                  <td colspan="2">Q&A</td>
                </tr>
                <tr>
                  <td>10:05 – 10:30</td>
                  <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt</td>
                  <td>Who Cares</td>
                </tr>
                <tr class="qa">
                  <td>10:30 – 10:35</td>
                  <td colspan="2">Q&A</td>
                </tr>
                <tr class="break">
                  <td>10:35 – 11:05</td>
                  <td colspan="2">Break</td>
                </tr>
                <tr>
                  <td>11:05 – 11:30</td>
                  <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt</td>
                  <td>Sam Man</td>
                </tr>
                <tr class="qa">
                  <td>11:30 – 11:35</td>
                  <td colspan="2">Q&A</td>
                </tr>
                <tr>
                  <td>11:35 – 12:35</td>
                  <td>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt</td>
                  <td>Faculty</td>
                </tr>
                <tr>
                  <td>12:35 – 12:45</td>
                  <td>Closing Remarks</td>
                  <td>Co-Chairs</td>
                </tr>
              </tbody>
            </table>
            <!-- /table -->
          </div>
          <!-- /main-body -->
        </main>
        <!-- /MAIN -->

        <!-- ASIDE -->
        <aside>
          <div class="main-body">
            <p class="list-header">Co-Chairs</p>
            <ul class="faculty-list">
              <li>
                <span>John Jacob</span>
                <br/> Expert in Stuff
                <br/> Lorum ipsum Division
                <br/> Department of Lorem Ipsum
                <br/> 200 Car Talk Tower, Dewey Cheatum & Howe
                <br/> Cambridge, MA
              </li>

              <li>
                <span>John Jacob</span>
                <br/> Expert in Stuff
                <br/> Lorum ipsum Division
                <br/> Department of Lorem Ipsum
                <br/> 200 Car Talk Tower, Dewey Cheatum & Howe
                <br/> Cambridge, MA
              </li>
            </ul>
            <p class="list-header">faculty</p>
            <ul class="faculty-list">
              <li>
                <span>John Jacob</span>
                <br/> Expert in Stuff
                <br/> Lorum ipsum Division
                <br/> Department of Lorem Ipsum
                <br/> 200 Car Talk Tower, Dewey Cheatum & Howe
                <br/> Cambridge, MA
              </li>
              <li>
                <span>John Jacob</span>
                <br/> Expert in Stuff
                <br/> Lorum ipsum Division
                <br/> Department of Lorem Ipsum
                <br/> 200 Car Talk Tower, Dewey Cheatum & Howe
                <br/> Cambridge, MA
              </li>
              <li>
                <span>John Jacob</span>
                <br/> Expert in Stuff
                <br/> Lorum ipsum Division
                <br/> Department of Lorem Ipsum
                <br/> 200 Car Talk Tower, Dewey Cheatum & Howe
                <br/> Cambridge, MA
              </li>

              <li>
                <span>John Jacob</span>
                <br/> Expert in Stuff
                <br/> Lorum ipsum Division
                <br/> Department of Lorem Ipsum
                <br/> 200 Car Talk Tower, Dewey Cheatum & Howe
                <br/> Cambridge, MA
              </li>
            </ul>
          </div>
          <!-- /main-body -->
        </aside>
        <!-- /ASIDE -->

      </div>
      <!-- /CENTER ROW -->

    </div>
    <!-- /CENTER TABLE -->

    <!-- FOOTER -->
    <footer>
      <p>
        Copyright © 2018 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
        <br/> XXX-999999-YY
      </p>
      <div class="logo">LOGO GOES HERE</div>
    </footer>
    <!-- /FOOTER-->
  </div>
  <!-- /container -->

</body>

</html>

但是输出是这样的:

file = open("filename.xml","w")
workbook = xlrd.open_workbook('data.xlsx')
worksheet = workbook.sheet_by_name('sheet1')
value = worksheet.cell(1, 2)
file.write("<raml xmlns="'"raml21.xsd"'" version="'"2.1"'">")
file.write("    <cmData scope="'"all"'" type="'"plan"'">")
file.write("        <managedObject class="'"BTS"'" distName="'"ID-%s"'" operation="'"create"'" version="'"1891"'">" % str(value))

<managedObject version="1891" operation="create" distName="ID-number:1900.0" class="BTS"> 的值应为1900。 为什么在文件“ number:1900.0” 中输出?我只希望它在1900年。我该如何解决?

1 个答案:

答案 0 :(得分:0)

您正在使用方法cell(rowx, colx),该方法返回一个Cell对象。
这就是为什么代码中的str(value)返回number:1900.0的原因。

您要使用方法cell_value(rowx, colx),该方法返回单元格的值。但是您仍然会得到一个浮点数。因此,如果您希望value为整数,则可以将其像这样强制转换:

value = worksheet.cell_value(1, 2)
id = int(value)

或者,您可以使用Cell对象的属性value
例如:

value = worksheet.cell(1, 2).value
id = int(value)