Hướng dẫn python html format - định dạng html python

Tôi đang cố gắng phân tích XML vào cấu trúc giống như bảng trong Python.Hãy tưởng tượng XML như thế này:

<?xml version="1.0" encoding="UTF-8"?>
<base>
  <element1>element 1</element1>
  <element2>element 2</element2>
  <element3>
    <subElement3>subElement 3</subElement3>
  </element3>
</base>

Tôi muốn có kết quả như thế này:

KEY                       | VALUE
base.element1             | "element 1"
base.element2             | "element 2"
base.element3.subElement3 | "subElement 3"

Tôi đã thử sử dụng xml.etree.celementtree, sau đó các hàm được mô tả ở đây làm thế nào để chuyển đổi chuỗi XML thành từ điển trong Python?

Có bất kỳ chức năng nào có thể làm điều này?Tất cả các câu trả lời tôi tìm thấy được viết cho các sơ đồ XML cụ thể và sẽ cần được chỉnh sửa cho từng sơ đồ XML mới.Để tham khảo, trong r, thật dễ dàng với các gói XML và XML2 và chức năng xmltolist.

Hỏi ngày 18 tháng 8 năm 2017 lúc 11:25Aug 18, 2017 at 11:25Aug 18, 2017 at 11:25Aug 18, 2017 at 11:25Aug 18, 2017 at 11:25

Michal Hruškamichal HruškaMichal HruškaMichal HruškaMichal HruškaMichal Hruška

4042 Huy hiệu vàng6 Huy hiệu bạc14 Huy hiệu đồng2 gold badges6 silver badges14 bronze badges2 gold badges6 silver badges14 bronze badges2 gold badges6 silver badges14 bronze badges2 gold badges6 silver badges14 bronze badges

4

Tôi đã có kết quả cần thiết bằng cách sử dụng tập lệnh sau.

Tệp XML:::::

<?xml version="1.0" encoding="UTF-8"?>
<base>
  <element1>element 1</element1>
  <element2>element 2</element2>
  <element3>
    <subElement3>subElement 3</subElement3>
  </element3>
</base>

Mã Python:::::

import pandas as pd
from lxml import etree

data = "C:/Path/test.xml"

tree = etree.parse(data)

lstKey = []
lstValue = []
for p in tree.iter() :
    lstKey.append(tree.getpath(p).replace("/",".")[1:])
    lstValue.append(p.text)

df = pd.DataFrame({'key' : lstKey, 'value' : lstValue})
df.sort_values('key')

Result:::::

Đã trả lời ngày 22 tháng 8 năm 2017 lúc 10:38Aug 22, 2017 at 10:38Aug 22, 2017 at 10:38Aug 22, 2017 at 10:38Aug 22, 2017 at 10:38

Michal Hruškamichal HruškaMichal HruškaMichal HruškaMichal HruškaMichal Hruška

4042 Huy hiệu vàng6 Huy hiệu bạc14 Huy hiệu đồng2 gold badges6 silver badges14 bronze badges2 gold badges6 silver badges14 bronze badges2 gold badges6 silver badges14 bronze badges2 gold badges6 silver badges14 bronze badges

Tôi đã có kết quả cần thiết bằng cách sử dụng tập lệnh sau.

 
<contents>
  <part title="Lucene Basics(or Fundamentals)">
    <chapter title="Lucene Searching">
      <section type="internal" title="Lucene Scoring">
        <leaf title="How Lucene scoring works" seotitle="how-lucene-scoring-works">
        </leaf>
      </section>    
      <section type="terminal" title="" seotitle="">
        <leaf title="hello world" seotitle="how-lucene-scoring-works">
        </leaf>
      </section>
    </chapter>
  </part>
 
  <part title="Lucene Index">
    <chapter title="Lucene Searching">
      <section type="internal" title="Lucene Scoring">
        <leaf title="How Lucene indexing works" seotitle="how-lucene-indexing-works">
        </leaf>
        <leaf title="Lucene Index tutorial" seotitle="lucene-index-tutorial">
        </leaf>
      </section>    
      <section type="terminal" title="" seotitle="">
      </section>
    </chapter>
  </part>  
</contents>
 

Tệp XML::::

 
 <xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:template match="/">
         <div class="toc-contents">
             <ul>
                 <xsl:apply-templates/>
             </ul>
         </div>
     </xsl:template>
     <xsl:template match="part">
         <li>
          <div class="toc-part">
              <h2><xsl:value-of select="@title"/></h2>
              <ul>
                  <xsl:apply-templates select="chapter"/>
              </ul>
          </div>
         </li>
     </xsl:template>
     <xsl:template match="chapter">
         <li>
          <div class="toc-chapter">
              <h2><xsl:value-of select="@title"/></h2>
              <ul>
                  <xsl:apply-templates select=".//leaf"/>
              </ul>
          </div>             
         </li>
     </xsl:template>
     <xsl:template match="leaf">
 
         <li>
             <a>
                 <xsl:attribute name="href">
                     http://makble.com/<xsl:value-of select="@seotitle"/>
                </xsl:attribute>
              <xsl:value-of select="@title"/></a>
         </li>
     </xsl:template>
 </xsl:stylesheet>
 

Mã Python::::

 
import lxml.html
from lxml import etree
 
xslt_doc = etree.parse("test-xslt.xslt")
xslt_transformer = etree.XSLT(xslt_doc)
 
source_doc = etree.parse("toc-test.xml")
output_doc = xslt_transformer(source_doc)
 
print(str(output_doc))
output_doc.write("output-toc.html", pretty_print=True)
 

Đã trả lời ngày 22 tháng 8 năm 2017 lúc 10:38Aug 22, 2017 at 10:38Aug 22, 2017 at 10:38Aug 22, 2017 at 10:38