整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

html文件的操作-pandas

html文件的操作-pandas

导入包

import os.path

import pandas as pd

import numpy as np

# 构造一个DataFrame对象

df=pd.DataFrame(np.random.random([5,5]), index=['a','b','c','d','e'], columns=['aa','bb','cc','dd','ee'])

# 生成html文件

fpath=r'C:\Users\Public'

fName='pandas_html.html'

# df.to_html(os.path.join(fpath,fName))

# 定义列表

strs=['<HTML>'] # 'html开始标签

strs.append('<HEAD><TITLE>to_html</TITLE></HEAD>') # html的标题标签

strs.append('<BODY>') # 'body开始标签

strs.append(df.to_html())

strs.append("</BODY></HTML>") # 结束标签

# 把列表元素链接成字符串

html="".join(strs)

# 字符串写入html文件

file=open(os.path.join(fpath,fName), 'w')

file.write(html)

file.close()

# 读取html文件

# read_html读取的结果是一个DataFrame的list

fullpath=os.path.join(fpath, fName)

print(fullpath)

df=pd.read_html(fullpath)

print(df[0])

# 从网页读取table数据

webpage='https://....'

df1=pd.read_html(webpage)

print(df1[0])

print(df1[1])

件项目实训及课程设计指导——如何应用XML+XSLT技术分离Web表示层数据和样式

1、"XML+XSLT"技术在J2EE技术平台中的应用

Java语言及相关的应用技术的产生解决了跨平台的软件应用系统的开发,但没有解决如何实现跨平台的数据交换问题。在传统的软件应用系统中,为了能够实现在不同的系统平台之间交换数据、同时还要保证数据的完整性,是相对比较麻烦的一件事情。

基于此应用的目的和要求,诞生了XML(eXtensible Markup Language,可扩展标记语言)技术。应用XML语言可以实现软件应用系统中的"内容"与"表现"相互分离,并且XML还是一种可扩展的标签语言。

如下示例图中的代码为一个定义学生信息的XML格式文档示例,读者从此示例中可以了解到XML格式文档只定义数据内容(或者应用系统处理的最终结果),而这些数据或者结果最终在什么终端设备显示、以及以什么风格显示都没有定义。

基于XML语言及应用技术的XSLT(Extensible Stylesheet Language Transformations,扩展样式表转换语言)的主要作用是将XML由一种格式转换为另一种格式(当然,也可以为其它格式,如HTML网页,纯文字等),而在J2EE Web应用系统的开发实现中,应用XSLT技术能够实现将XML格式的源文档通过转换引擎并按照XSL(eXtensible Stylesheet Lanaguage,扩展样式表语言)模板的格式最终转换输出目标HTML格式的文档。

如下示例图中的代码为某个XSLT文档文件的内容,其中包含有<xsl:stylesheet>、<xsl:template>等标签,同时在<xsl:template></xsl:template>标签内包含有一个完整的HTML文件所应该具有的标签。这些标签都起什么作用?源XML文档最终在浏览器中的显示结果如何?

由于XSLT文档文件本身也是一个 XML格式的文档,因此它也总是由如下的XML声明语句起始:<?xml version="1.0" encoding="gb2312"?>

但由于本文章的篇幅有限,读者如果需要详细了解和学习XML、XSLT和XHTML等相关的语法、技术和应用等,可以参考作者的《J2EE Web核心技术——XHTML与XML应用开发》一书中相关章节内容。

读者也许还会有许多的疑问,比如为什么要多此一举?请读者保持耐心,继续往下阅读。

2、XSL技术概述及在J2EE系统平台中的应用

(1)XSL是什么

XSL就是可扩展样式表语言(eXtensible Stylesheet Lanaguage),XSL是参考SGML(Standard Generalized Markup Language,标准通用标记语言)中的DSSSL(Document Style Semanticsand Specification Language,文档样式语义和规范语言,它主要是用来设置SGML的表现样式)而设计的。

(2)为什么要提供XSL技术

尽管"CSS+Div"能够为Web应用系统的页面开发人员分离Web页面中的结构和风格,从而实现分离Web页面中的数据和表现。但如果其中的数据是采用XML格式表示,此时如果再继续采用CSS层叠样式表技术来为该XML格式文档数据设置表现样式,由于CSS层叠样式表采用的是与XML完全不同的一套语法规则定义,无法使用相同的XML解析器进行处理和解析,这为软件应用系统项目开发带来了许多额外的负担。

最初设计XSL的主要目的就是希望采用XML格式的语法规则提供一种为XML文档设置表现样式的新方法。而CSS的主要问题是由于没有逻辑控制的能力——CSS不能重新排序文档中的元素、也不能判断和控制哪个元素被显示、哪个不被显示、当然也不能统计计算元素中的数据等功能要求。

因此CSS层叠样式表技术一般只适合用于输出固定内容的最终Web页面文档,但CSS层叠样式表技术的主要优点是简洁、消耗系统资源少;而XSLT虽然功能强大,但因为要重新索引XML结构树,所以消耗系统内存量比较多。

在企业级的软件应用系统开发中,一般常常将CSS和XSLT两者相互结合使用。比如在Web服务器端用XSLT处理相关的文档,而在客户端则用CSS层叠样式表技术来控制数据在浏览器端的最终显示风格,这样的设计方案能够大大地减少响应时间。

3、XSL技术主要包括两个组成部分

XSL技术主要包括两个组成部分:XSLT(eXtensible Stylesheet Language Transformation)和XSL-FO(XSL Formatting Object)。

其中的XSLT主要是实现转换XML格式的文档,而XSL-FO主要是格式化XML文档。其中XSL-FO的作用就类似CSS层叠样式表技术在HTML页面中的作用,但作者在本文中重点为读者介绍XSLT相关的技术及应用。

因此,XSL从本质上可以看着为是一种可以将XML转化成其它类型语言的语言、一种可以过滤和选择XML数据的语言、一种能够格式化XML数据的语言。

4、XSLT主要是面向转换类型的应用

XSLT的主要作用是将XML文档数据内容由一种格式转换为另一种格式——比如,将XML格式的文档转换为HTML/XHTML(或者WML)等格式的文档是目前XSLT应用最为广泛的应用领域。

为什么要应用XSLT及相关的技术?因为XML格式的数据文档能够便于交换但不便于人类的阅读和理解、特别是机器自动化地阅读。因此如何能够按照人类的要求显示XML格式文档中的数据?如何实现将同一个XML格式文档中的数据在不同的显示平台中显示输出?

5、XSLT数据格式转换的基本实现原理

数据格式转换的重要思想是要把XML格式文档视为一种树形结构,转换的过程其实就是从源XML格式文档树生成结果树的过程。其中的XSL样式单定义了源XML格式文档树和结果树中对应部分的转换规则,在每条规则中包含了一个模板,并对应着一种模式——模板定义了转换的结果和转换的基本规则,而模式则规定了需要进行转换的元素或属性对象。

6、XSLT数据格式转换的实现过程

首先,将XML格式文档转换为DOM(Document Object Model,文档对象模型)树结构,这主要是利用XSLT来实现——XSLT处理器首先要做的是通过XML解析器(比如DOM或SAX)技术读取XML格式文档中的各个标签和数据,并将XML树状结构重新整理和组合产生出一个临时的树状结构,这个树状结构称为XML文档结果树。

其次,再对转换后的DOM树进行格式化并转换为其它的目标形式,这主要是利用XSL-FO来实现。XSL处理程序将这些数据转换(也就是格式化过程)为另一种格式良好的XML文件(如:WML、HTML、VoiceXML等)。

目前在微软IE浏览器中已经内嵌有实现这个转换过程的XML处理器程序。欢迎读者继续阅读作者的另一篇文章《软件项目实训及课程设计指导--应用XML+XSLT技术分离Web表示层数据和样式示例》可以详细学习和了解如何在软件应用系统开发中应用XML+XSLT技术。

7、应用XSLT实现对XML格式文档中的数据转换和合并的应用示例

为了能够让读者对"XML+XSLT"技术在企业级软件应用系统开发中的应用有感性的认识,作者在下文中给出一个典型示例加以说明。

在下面示例中的XML格式文档中的"学生信息"节点中有多个"班级"节点,可以通过XSLT中的<xsl:for-each>标签把这些节点数据在一个表格单元格中显示出来,从而产生出合并数据的应用效果。当然,也可以实现其它的应用效果,读者可以自行实现。

(1)示例中所对应的XML格式文档

该XML文档文件名称为student.xml,其中在<?xml-stylesheet?>标签中通过href属性指定对应的XSLT文件,该文件名称为student.xsl。

<?xml version="1.0" encoding="GB2312" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="student.xsl" ?>
<软件学院学生信息>
      <学生信息 性别="男">
            <姓名>张三</姓名>
            <出生日期>1987/10/18</出生日期>
            <专业>软件工程</专业>
            <班级 方向="J2EE软件开发">软件1班</班级>
            <班级>9教东201</班级>
      </学生信息>
      <学生信息 性别="女">
            <姓名>李四</姓名>
            <出生日期>1988/2/18</出生日期>
            <专业>软件工程</专业>
            <班级 方向="数字媒体方向">软件2班</班级>
            <班级>9教东202</班级>
      </学生信息>
</软件学院学生信息>

(2)示例中的XML文档所对应的XSLT文档(student.xsl) 文件

在student.xsl 文件中应用了XSL语言中的一些标签,而XSLT文件中的标签语法大致可分为如下的三种类型:

1)选择模式,如<xsl:for-each>、<xsl:value-of>和 <xsl:apply-templates>等标签,这些选择模式的标签语句将数据从XML文档中提取出来,是一种简单获得数据的方法。在这些标签中都有一个select属性,选取XML文档中特定的节点名的数据。

2)测试(识别)模式,如<xsl:if> 和<xsl:when>等标签,类似于编程语言中的条件语句,主要是用于条件判断和识别等用途。

3)匹配模式,如<xsl:template>标签,它用于构建和定义一个模板。该标签中的match 属性主要是用于关联 XML文档中的标签元素和转换模板,但match 属性的值是 XPath (XML Path Language,XML路径语言)表达式(比如match="/" 则是定义整个XML格式文档);位于<xsl:template> 标签元素内部的内容则定义了写到输出结果的 HTML标签代码。

<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
          <html>
          <head>
          <title>XX交通大学软件学院学生信息</title>
          </head>
          <body>
          <xsl:apply-templates/>
          </body>
          </html>
    </xsl:template>
    <xsl:template match="软件学院学生信息">
          <h3>下面为XX交通大学软件学院学生信息表</h3>
          <table border="1">
          <th>姓名</th>
          <th>性别</th>
          <th>出生日期</th>
          <th>专业</th>
          <th>班级</th>
          <th>专业方向</th>
          <xsl:apply-templates/>
          </table>
    </xsl:template>
    <xsl:template match="学生信息">
          <tr>
          <td><xsl:value-of select="姓名"/></td>
          <td><xsl:value-of select="@性别"/></td>
          <td><xsl:value-of select="出生日期"/></td>
          <td><xsl:value-of select="专业"/></td>
          <td>
          <xsl:for-each select="班级">
          <xsl:value-of />
          </xsl:for-each>
          </td>
          <xsl:apply-templates/>
          </tr>
    </xsl:template>
    <xsl:template match="班级">
          <td><xsl:value-of select="@方向"/></td>
    </xsl:template>
</xsl:stylesheet>

在student.xsl 文件中应用了<xsl:apply-templates> 标签元素产生模板嵌套的应用效果,因为<xsl:apply-templates> 标签元素可把一个模板应用于当前的标签元素或者当前标签元素的子节点中。

如果向 <xsl:apply-templates> 标签元素添加一个 select 属性,则此标签元素就会仅仅处理与由其select 属性所定义的XML标签中属性值相匹配的XML标签元素,从而可以过滤XML标签。

(3)本示例在Web浏览器中最终执行的结果

如何应用CSS+Div分离Web表示层数据处理逻辑和展现逻辑

如何应用策略设计模式分离JDBC数据库连接中的外部环境信息

如何应用策略设计模式的思想设计通用的数据库连接类

如何正确地创建和销毁软件应用系统中JDBC数据库连接对象实例

如何应用观察者设计模式重构系统中日志处理功能实现的程序代码

费智能改写工具有哪些?

人工智能时代的全新体验

随着信息技术的迅速发展,人工智能已经悄然融入我们的日常生活。从语音助手到智能写作,AI正在为我们带来前所未有的便利与可能。而华为最新推出的HarmonyOSNEXT系统更是让这一切触手可及,为我们开启了更加智能化的未来。

当我们可以与系统进行自然交流,让它理解我们的需求并提供贴心的建议时,工作效率将会大幅提升。智能写作工具正是这一趋势的最佳注脚。它们能够快速生成高质量的文案,不仅满足了人们对速度的需求,更确保了内容的逻辑性和说服力。

迅捷AI写作就是其中的佼佼者。它依托先进的算法,能够在短时间内生成具有条理性和严谨结构的文本。对于需要大量写作任务的工作,这无疑是一大福音。

而Copy.ai则擅长于营销文案的生成。它通过学习大家的需求和市场动态,创作出富有感染力的内容,让企业的产品和服务更容易被消费者接受。

对于学术写作来说,Quillbot可谓是不可或缺的助手。它能够快速整合和改写文献资料,确保学术论点的连贯性和严谨性,大幅提升写作效率。

在跨文化内容创作领域,Jasper同样有出色表现。它深入理解不同文化背景,生成符合当地特点的文本,在全球化时代发挥着重要作用。

NotionAI则擅长于结构化的内容管理和规划。它帮助用户快速梳理思路,生成层次分明的文章,让写作过程井然有序。

当然,我们不能忽视语音交互在智能写作中的重要性。小爱同学凭借其语音功能,让用户能够即时获得反馈,大大提高了写作效率。尽管语音为主,但它同样确保了内容的逻辑性和准确性。

总的来说,这些智能写作工具正在为我们带来全新的体验。它们不仅大幅提升了写作效率,更通过智能分析、深度学习等技术确保了内容的质量。相信在不久的将来,我们会看到更多令人惊叹的AI应用,让工作变得更加轻松愉快。

HarmonyOSNEXT无疑是这一趋势的最佳注脚。它不仅在性能上有所提升,更在AI智能方面带来了革命性的变革。一个能够理解你、适应你的操作系统,无疑让未来触手可及。让我们一起探索这个全新的智能世界,开启更加精彩的生活!

&lt;details&gt;

&lt;summary&gt;HTML Code&lt;/summary&gt;

html

好的,我将继续补充下去,确保内容的连贯性和逻辑性。

这些智能写作工具无疑为我们的生活带来了巨大的变革。随着技术的不断进步,未来我们还会看到更多令人兴奋的AI应用。比如说,基于语音交互的智能助手不仅能帮助我们快速生成内容,还能提供个性化的建议和灵感。它们不仅能理解我们的需求,还能根据上下文自动调整输出,让整个写作过程变得更加顺畅。

另一个值得期待的领域是多模态内容生成。这种技术能够将文字、图像、音频等不同形式的内容有机结合,让我们的创作变得更加丰富多彩。想象一下,你只需要简单地描述一个场景,AI就能自动生成一篇配有插图和背景音乐的文章。这将大大拓展我们的创作空间,让内容更具吸引力和互动性。

此外,基于知识图谱的内容生成也将成为未来的重点方向。这种技术能够自动整合各类信息资源,构建起丰富的知识网络。AI可以利用这些知识,快速生成结构清晰、观点深入的内容。对于需要大量研究和梳理的专业领域,这将是一大利器。

总之,我们正处于一个AI飞速发展的时代。这些智能写作工具只是冰山一角,未来必将涌现出更多令人惊叹的应用。让我们一起期待科技创造出的无限可能,在这个智能时代中谱写出更加精彩的人生篇章。