谁能帮我阅读这个 XML 文件并告诉我我在看什么
Can anybody help me read this XML file and tell me what I am looking at
我需要能够读取每行和每列的内容,例如 D3 行的内容,但我不确定如何才能做到这一点。我知道它制作了一个电子表格,但它是用什么代码或语言编写的,我如何才能学会从这个来源阅读特定信息?
我的印象是它 xml 并且已经完成了它创建的 table 但我仍然无法弄清楚我是如何阅读每一行或每一列的内容的。
<wf:table h="85" w="405" range="A1:D5">
<wf:fmts>
<wf:bdrFmts>
<wf:bdrFmt style="solid"/>
<wf:bdrFmt style="double"/>
</wf:bdrFmts>
<wf:fillFmts>
<wf:fillFmt color="#0094ff"/>
</wf:fillFmts>
<wf:valFmts>
<wf:valFmt fmtStr="MMMM D, <new_line> YYYY" typ="dateTime"/>
<wf:valFmt typ="text"/>
<wf:valFmt outScl="6" typ="accounting" thouSep="true"/>
</wf:valFmts>
<wf:txtFmts>
<wf:txtFmt fontFamily="Arial"/>
<wf:txtFmt fontWeight="bold" textAlign="center" fontFamily="Arial"/>
<wf:txtFmt fontWeight="bold" fontFamily="Arial" color="#00cc00"/>
</wf:txtFmts>
<wf:condFmts/>
</wf:fmts>
<wf:cols>
<wf:col w="201" />
<wf:col gutter="3.35" w="100" />
<wf:col w="4" />
<wf:col gutter="3.35" w="100" />
</wf:cols>
<wf:rows>
<wf:row h="25">
<wf:c tFmt="1"/>
<wf:c formattedString="June 30, 
2016" tFmt="2" val="6/30/2016" vFmt="1" bFmt="0|. 0|0|1"/>
<wf:c tFmt="1"/>
<wf:c formattedString="December 31, 
2015" tFmt="2" val="12/31/2015" vFmt="1" bFmt="0|0|0|1"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Debt Securities" tFmt="1" vFmt="2" val="Debt Securities"/>
<wf:c formattedString="1,000" tFmt="1" fFmt="1" val="1000" inScl="6" vFmt="3"/>
<wf:c tFmt="1"/>
<wf:c formattedString="1,200" tFmt="1" fFmt="1" val="1200" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Equities" tFmt="1" vFmt="2" val="Equities"/>
<wf:c formattedString="500" tFmt="1" val="500" inScl="6" vFmt="3"/>
<wf:c tFmt="1" />
<wf:c formattedString="600" tFmt="1" val="600" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Money Market Funds" tFmt="1" vFmt="2" val="Money Market Funds"/>
<wf:c formattedString="200" tFmt="1" fFmt="1" val="200" inScl="6" vFmt="3"/>
<wf:c tFmt="1"/>
<wf:c formattedString="200" tFmt="1" fFmt="1" val="200" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Total Cash Equivalents" tFmt="1" vFmt="2" val="Total Cash Equivalents"/>
C
<wf:c tFmt="1" />
<wf:c formattedString="2,000" tFmt="3" formula="SUM(D2:D4)" val="2000" inScl="6" vFmt="3" bFmt="0|0|1|2"/>
</wf:row>
</wf:rows>
</wf:table>
</wf:Worksheet>
</WFML>
Python 中的 BeautifulSoup 模块可以轻松遍历任何类似 XML 的代码。
将代码放入我命名为 pagecode
的字符串后,我 运行 提取第四行第三列中的内容:
from bs4 import BeautifulSoup
soup = BeautifulSoup(pagecode, 'lxml')
rows = soup.find_all("wf:row")
cell = rows[3].find_all("wf:c")[2] # Indexing starts at 0, not 1!
print(cell) # Displays <wf:c tfmt="1"></wf:c>
我需要能够读取每行和每列的内容,例如 D3 行的内容,但我不确定如何才能做到这一点。我知道它制作了一个电子表格,但它是用什么代码或语言编写的,我如何才能学会从这个来源阅读特定信息?
我的印象是它 xml 并且已经完成了它创建的 table 但我仍然无法弄清楚我是如何阅读每一行或每一列的内容的。
<wf:table h="85" w="405" range="A1:D5">
<wf:fmts>
<wf:bdrFmts>
<wf:bdrFmt style="solid"/>
<wf:bdrFmt style="double"/>
</wf:bdrFmts>
<wf:fillFmts>
<wf:fillFmt color="#0094ff"/>
</wf:fillFmts>
<wf:valFmts>
<wf:valFmt fmtStr="MMMM D, <new_line> YYYY" typ="dateTime"/>
<wf:valFmt typ="text"/>
<wf:valFmt outScl="6" typ="accounting" thouSep="true"/>
</wf:valFmts>
<wf:txtFmts>
<wf:txtFmt fontFamily="Arial"/>
<wf:txtFmt fontWeight="bold" textAlign="center" fontFamily="Arial"/>
<wf:txtFmt fontWeight="bold" fontFamily="Arial" color="#00cc00"/>
</wf:txtFmts>
<wf:condFmts/>
</wf:fmts>
<wf:cols>
<wf:col w="201" />
<wf:col gutter="3.35" w="100" />
<wf:col w="4" />
<wf:col gutter="3.35" w="100" />
</wf:cols>
<wf:rows>
<wf:row h="25">
<wf:c tFmt="1"/>
<wf:c formattedString="June 30, 
2016" tFmt="2" val="6/30/2016" vFmt="1" bFmt="0|. 0|0|1"/>
<wf:c tFmt="1"/>
<wf:c formattedString="December 31, 
2015" tFmt="2" val="12/31/2015" vFmt="1" bFmt="0|0|0|1"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Debt Securities" tFmt="1" vFmt="2" val="Debt Securities"/>
<wf:c formattedString="1,000" tFmt="1" fFmt="1" val="1000" inScl="6" vFmt="3"/>
<wf:c tFmt="1"/>
<wf:c formattedString="1,200" tFmt="1" fFmt="1" val="1200" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Equities" tFmt="1" vFmt="2" val="Equities"/>
<wf:c formattedString="500" tFmt="1" val="500" inScl="6" vFmt="3"/>
<wf:c tFmt="1" />
<wf:c formattedString="600" tFmt="1" val="600" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Money Market Funds" tFmt="1" vFmt="2" val="Money Market Funds"/>
<wf:c formattedString="200" tFmt="1" fFmt="1" val="200" inScl="6" vFmt="3"/>
<wf:c tFmt="1"/>
<wf:c formattedString="200" tFmt="1" fFmt="1" val="200" inScl="6" vFmt="3"/>
</wf:row>
<wf:row h="15">
<wf:c formattedString="Total Cash Equivalents" tFmt="1" vFmt="2" val="Total Cash Equivalents"/>
C
<wf:c tFmt="1" />
<wf:c formattedString="2,000" tFmt="3" formula="SUM(D2:D4)" val="2000" inScl="6" vFmt="3" bFmt="0|0|1|2"/>
</wf:row>
</wf:rows>
</wf:table>
</wf:Worksheet>
</WFML>
Python 中的 BeautifulSoup 模块可以轻松遍历任何类似 XML 的代码。
将代码放入我命名为 pagecode
的字符串后,我 运行 提取第四行第三列中的内容:
from bs4 import BeautifulSoup
soup = BeautifulSoup(pagecode, 'lxml')
rows = soup.find_all("wf:row")
cell = rows[3].find_all("wf:c")[2] # Indexing starts at 0, not 1!
print(cell) # Displays <wf:c tfmt="1"></wf:c>