菜单

壹分钟神速变化用于网页内容提取的xslt

2019年4月7日 - 皇家赌场系统

REPORT下OVER_STATUS节点,那么些是成套报告的结果,惟有当有着条条框框为passed时才会为passed

假定大家要抓取论坛帖子列表,上边一步步执教操作方法:
先是步,打开GooSeeker的MS谋数台,输入要抓取的网站
其次步,在MS谋数台的浏览器展现窗口里,直接采取要提取的始末,并且起个名字,点击确认

必须使用word 2003.

一.底下通过例子演示:

图片 1

图片 2

 

简言之 的xml以及对应的xml框架

 

②.分级创建0三版本的word文书档案log_03.doc和o7版本的word文档log_07.docx,并都利用以上生成的log.xsd框架

图片 3

 

个别另存为log_03_doc.xml,log_07_doc.xml。

3.
用log_03_doc.xml,log_07_doc.xml生成xslt文件log_03.xslt和log_07.xslt。

图片 4

 

log_03_doc.xml生成log_0三.xslt时会弹出以上对话框,仅仅选中xml中内定的namespace就足以了。

 图片 5

 

log_07_doc.xml生成log_07.xslt时会弹出上述对话框,正是从未xml中钦点的namespace,全数无论怎么选,生成的xslt都不是我们想要的。

3,用MS谋数台湾学生成XSLT

借使大家要抓取论坛帖子列表,下边一步步上书操作方法:

第一步,打开GooSeeker的MS谋数台,输入要抓取的网站
第二步,在MS谋数台的浏览器呈现窗口里,间接接纳要提取的始末,并且起个名字,点击确认

图片 6

第三步,点击工作台的“测试”按钮,xslt就生成了,在“数据规则”窗口显示出来

图片 7

通过以上的操作,不用编制程序,用图形化界面直接在页面上标明,一分钟就能够生成xslt

 用ie打开xml报告,当然能够看来总括果展现有点难题,那些不影响报告展现,代码中处理一下就好.

肆、怎么样利用XSLT

Xml生成word总结

  
使用xml生成word的核心步骤在《使用xslt转化xml数据形成word文书档案导出.doc》中证实相比清楚了。可是当中的底细尚未提及,因而自个儿折磨了二日总算成功了。以下是笔者在选取进度中碰着的题材要点:

 

一,项目背景

在Python即时互联网爬虫项目表明一文大家说过要做一个通用的互连网爬虫,而且能节省程序员大半的时日,而难题难题正是提取器使用的抓取规则须要急忙转移。在python使用xslt提取网页数据一文,大家已经见到那些提取规则是xslt程序,在演示程序中,直接把一长段xslt赋值给变量,不过尚未讲那壹段xslt是怎么来的。

网络好友自然会疑心:这一个xslt这么长,编写不是要花很短日子?

实在境况是,那一个xslt是由此GooSeeker的MS谋数台的直观标注成效自动生成的,熟习的话一秒钟就消除了。

<?xml version="1.0" encoding="utf-8"?>
    <?xml-stylesheet href="LOG.XSLT" type="text/xsl"?>
    <REPORT>
        <OVER_STATUS>PASSED</OVER_STATUS>
        <LOG_ENTRY>
            <STATUS>FAILED</STATUS>
            <EXECUTION_TIME>2017.06.15 15:57:16</EXECUTION_TIME>
            <STEP_RESULT>FAILED</STEP_RESULT>
            <COMPONENT_NAME>704</COMPONENT_NAME>
            <STEP_DESCRIPTION>{u'nextUrl': u'http://www.elong.com', u'message': u'\u9a8c\u8bc1\u7801\u9519\u8bef', u'code': u'704', u'success': False, u'isShowVerifyCode': True}</STEP_DESCRIPTION>
        </LOG_ENTRY>
        <LOG_ENTRY>
            <STATUS>FAILED</STATUS>
            <EXECUTION_TIME>2017.06.15 15:57:16</EXECUTION_TIME>
            <STEP_RESULT>FAILED</STEP_RESULT>
            <COMPONENT_NAME>704</COMPONENT_NAME>
            <STEP_DESCRIPTION>{u'nextUrl': u'http://www.elong.com', u'message': u'\u9a8c\u8bc1\u7801\u9519\u8bef', u'code': u'704', u'success': False, u'isShowVerifyCode': True}</STEP_DESCRIPTION>
        </LOG_ENTRY>
    </REPORT>

一分钟快速生成用于网页内容提取的xslt,具体内容如下

不要选别的namespace

图片 8

log_03_doc.xml生成log_03.xslt时会弹出以上对话框,不要随便再选其余namespace。
生成的xslt截图

 

 图片 9

 

图片 10

只要再选中别的namespace,生成的xslt也不是大家要的。生成xslt截图

图片 11

芸芸众生跟上边的不一致。

 图片 12

 

 图片 13

 

 

 

5,文书档案修改历史

201六-0伍-2陆:V二.0,增补文字表达
201陆-05-2八:V三.0,扩充第2章

一.使用xslt样式,那样能够很好的和xml结合,做出美丽的报告

其三步,点击工作台的“测试”按钮,xslt就生成了,在“数据规则”窗口体现出来

安顿图片

要贯彻插入图片,要求修改log_03.doc.

图片 14

重复生成log_03.xslt,并修改<ns0:image>节点。

1、删除全数v:shapetype 节点

贰、删除 
<w:binData节点中的数据,并添加<xsl:value-ofselect=”.”/>

图片 15

修改今后

图片 16

3、修改v:shape 节点,去掉 style 属性,增加xsl 节点,如下:

图片 17

图片 18

 

四、去掉w:pict 节点前面包车型大巴带<xsl:value-ofselect=”.”/>的全部节点

事例中去掉了如下代码:

<w:r>

         <w:t>

           <xsl:value-of select=”.” />

         </w:t>

  </w:r>

若是没做第五步,则在word中会出现图片的二进制代码。

 

 

例子:

  QDomDocumentdom;

    QDomProcessingInstructionproc =

       dom.createProcessingInstruction(

       “xml”,

       “version=\”1.0\”standalone=\”no\””

       );

    dom.appendChild(proc);

 

    QDomElementr =dom.createElement(“log”);

    dom.appendChild(r);

    r.setAttribute(“xmlns”,”logs”);

    QDomElementuserNode =dom.createElement(“user”);

    r.appendChild(userNode);

    QDomTextuserTextNode =dom.createTextNode(“john”);

    userNode.appendChild(userTextNode);

 

    QDomElementloginNode =dom.createElement(“login”);

    r.appendChild(loginNode);

    QDomTextloginTextNode =dom.createTextNode(“2015-01-1811:10:12”);

    loginNode.appendChild(loginTextNode);

 

    QDomElementlogoffNode =dom.createElement(“logoff”);

    r.appendChild(logoffNode);

    QDomTextlogoffTextNode =dom.createTextNode(“2015-01-1813:10:12”);

    logoffNode.appendChild(logoffTextNode);

 

    QDomElementimageNode =dom.createElement(“image”);

    r.appendChild(imageNode);

    QStringpng;

    FILE*fpng =fopen(“2.jpg”,”rb”);

    if( fpng )

    {

       encode(fpng,png,0 );

       fclose(fpng );

    }

    imageNode.setAttribute(“style”,”width:300pt;height:300pt” );

    charszBuffer[256];

    //sprintf(szBuffer,”wordml://5.png”);

    imageNode.setAttribute(“key”,”2.jpg” );

    QDomTextlogonNodeTextNode =dom.createTextNode(png);

    imageNode.appendChild(logonNodeTextNode);

 

 

 

    QStringxml =dom.toString();

    QFilefile(“log.xml”);

    if(file.open(QIODevice::WriteOnly))

    {

       QTextStreamoutput( &file);

       output.setCodec(QTextCodec::codecForName(“UTF-8”));

       //QStringcontent = dom.toString();

       output<< xml;

       file.close();

    }

 

 

    QStringsrc =”msxsl.exe”;

    QStringsrc1 =”log.xml”;

    QStringsrc2 =”log_03.xslt”;

    QStringsrc3 =QString(“122″)+”.doc”;

 

    QProcess*proce =newQProcess( );

    QStringListargumentList;

    argumentList.append(src1 );

    argumentList.append(src2 );

    argumentList.append(“-o”);

    argumentList.append(src3 );

 

    proce->start(src, argumentList );

    bool ret =proce->waitForStarted( 5000 );

 图片 19

二,MS谋数台能做哪些

MS谋数台有个图形化界面,把壹密密麻麻html解析工具集成在协同,包括:
一)基于直观标注自动生成XSLT
2)即时测试XSLT的不利
三)树状的DOM结构显示
四)剖析有些DOM节点的品质
5)为DOM节点生成XPath,可挑选稳定到class、或然id、只怕相对定位
6)根据xpath搜索DOM节点

MS谋数台界面分成3有个别:DOM数窗口、内嵌浏览器窗口、工作台。在工作台上定义xslt转换规则。

有上述四点,基本成立贰个xml没失常了.

3、用MS谋数台湾学生成XSLT

四,怎么样使用XSLT

在python使用xslt提取网页数据一文,大家把生成xslt作为八个字符串交给程序,给人感到好像1转眼回来了史前文明,后边讲的那么好,最后用了很原始的正片。其实不然,那么些只是2个事例。在python即时网络爬虫项目:
内容提取器的概念一文已经初见端倪了,有各种流入xslt的艺术,最自动化的艺术是api,将在此起彼伏小说中详细讲解。

在那里能够定制好,大家要生成告诉,是哪些样子的,然后在从xml获取数据.

网上朋友肯定会嫌疑:那些xslt这么长,编写不是要花不短日子?

思路:

实则意况是,那些xslt是透过GooSeeker的MS谋数台的直观标注功效自动生成的,熟稔的话1分钟就解决了。

以下代码意思是:创建一个over_status的节点,节点文本为passed,然后,将此节点扩充到根节点REPOCRUISERT下

MS谋数台有个图形化界面,把1多重html解析工具集成在一块儿,包罗:

一,创立3个xml文档

伍、文书档案修改历史

上面上,生成xml的python代码,那个成立xml结构就很简短了.

图片 20

 

您可能感兴趣的小说:

            overStatus = xmlD.createElement('OVER_STATUS')
            overStatus.appendChild(xmlD.createTextNode('PASSED'))
            report.appendChild(overStatus)

MS谋数台界面分成三有个别:DOM数窗口、内嵌浏览器窗口、工作台。在工作台上定义xslt转换规则。

以下代码成立根节点做为了贰个单独的函数,之所以那样做因为要转变的告诉,只开创三个根节点,和over_status
结果情状

在python使用xslt提取网页数据一文,我们把生成xslt作为一个字符串交给程序,给人感觉到好像一转眼回来了明清文明,前边讲的那么好,最终用了很原始的正片。其实否则,那多少个只是三个事例。在《python即时网络爬虫项目:
内容提取器的概念》一文已经初见端倪了,有四种注入xslt的方法,最自动化的方法是api,将在三番五次小说中详细讲解。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图