相关疑难解决方法(0)

你能提供解析HTML的例子吗?

如何使用各种语言解析HTML并解析库?


回答时:

个人评论将链接到有关如何使用正则表达式解析HTML的问题的答案,作为展示正确行事方式的一种方式.

为了保持一致性,我要求该示例解析hrefin锚标记的HTML文件.为了便于搜索此问题,我要求您遵循此格式

语言:[语言名称]

图书馆:[图书馆名称]

[example code]
Run Code Online (Sandbox Code Playgroud)

请使库成为库文档的链接.如果您想提供除提取链接之外的示例,还请包括:

目的:[解析的作用]

html language-agnostic html-parsing

69
推荐指数
15
解决办法
3万
查看次数

如何使用XML :: Twig获取内容?

我的目标是start_tag_handler(见下文)在找到/ tag 时获取apps/ titlecontent (请参阅下面的示例XML).appstitle

end_tag_handler在找到/ tag 时获取apps/ logscontent .appslogs

但相反,此代码返回null并退出.

这是用于解析的Perl代码(使用XML :: Twig)###:

    #!/usr/local/bin/perl -w

    use XML::Twig;
    my $twig = XML::Twig->new(
                start_tag_handlers =>
                  { 'apps/title' => \&kicks
                  },
                twig_roots =>
                  { 'apps' => \&app
                  },
                end_tag_handlers =>
                  { 'apps/logs' => \&bye
                  }
                );
    $twig -> parsefile( "doc.xml");

    sub kicks {
        my ($twig, $elt) = @_;
        print "---kicks--- \n";
        print $elt -> text;
        print …
Run Code Online (Sandbox Code Playgroud)

xml perl xml-twig

6
推荐指数
1
解决办法
4596
查看次数

在Perl中,如何在不更改XML文件格式的情况下更改XML文件中的元素?

我有一个格式的XML文件:

<outer1>
    <inner1>
        <name>Stonecold</name>
        <profession>warrior</profession>
        <org>wwf</org>
    </inner1>
    <inner1>
        <name>Shanebond</name>
        <profession>Bowler</profession>
        <org>newzealand</org>
    </inner1>
    <inner1>
        <name>brain schemidit</name>
        <profession>Chairman</profession>
        <org>Google</org>
    </inner1>
</outer1>
Run Code Online (Sandbox Code Playgroud)

我想改变的价值ShanebondShane Bond.

我正在使用XML::Simple,但结果是哈希.

我想要与输入文件相同的格式.例如:输出文件应如下所示:

<outer1>
    <inner1>
        <name>Stonecold</name>
        <profession>warrior</profession>
        <org>wwf</org>
    </inner1>
    <inner1>
        <name>Shane Bond</name>
        <profession>Bowler</profession>
        <org>newzealand</org>
    </inner1>
    <inner1>
        <name>brain schemidit</name>
        <profession>Chairman</profession>
        <org>Google</org>
    </inner1>
</outer1>
Run Code Online (Sandbox Code Playgroud)

请告知如何做到这一点.

提前致谢.

我希望输出文件保存在同一目录中,如果可能的话,使用相同的名称.可能吗?

xml perl

5
推荐指数
3
解决办法
2万
查看次数

如何使用XML :: Twig从URL中提取一些XML数据?

我想获取一个特定的字符串,例如来自某个XML的<received> 123 </ received>中的123,这些XML将从URL中检索.

我写了一段代码,但仍然遇到错误信息:

尝试在/usr/share/perl5/XML/Twig.pm第392行加入引用.

我该如何解决?

代码:

use XML::Twig;
use LWP::Simple;

my $url = 'http://192.168.1.205:13000/status.xml';
my $twig = new XML::Twig(TwigRoots => {
'smsc/received' => sub {$author = $_[1]->text;  }});
$twig->nparse( $url );
$twig->print;
Run Code Online (Sandbox Code Playgroud)

xml perl xml-twig

4
推荐指数
1
解决办法
1254
查看次数

如何使用Perl的XML :: Twig将子元素添加到XML?

我有以下XML文件:

<SOURCE_SERVER>
  <SERVER HOSTNAME="serv1">
      <CIFS_SERVICE NETBIOSNAME="serv1"/>
  </SERVER>
  <SERVER HOSTNAME="serv2">
  </SERVER>
<SOURCE_SERVER>
Run Code Online (Sandbox Code Playgroud)

现在,我想孩子补充<CIFS_SERVICE NETBIOSNAME="serv2"/><SERVER HOSTNAME="serv2">.如何使用XML :: Twig执行此操作?

xml perl xml-twig

2
推荐指数
1
解决办法
3339
查看次数

如何使用Perl的XML :: Twig向子元素添加属性?

我有一个像这样的XML字符串:

<DATA>
   <CHILD_DATA ATVAL="value1"/>
   <CHILD_DATA />
</DATA>
Run Code Online (Sandbox Code Playgroud)

我想要的最终输出是:

<DATA>
   <CHILD_DATA ATVAL="value1"/>
   <CHILD_DATA ATVAL="value2"/>
</DATA>
Run Code Online (Sandbox Code Playgroud)

我的树枝$t<DATA>.现在我想为第二个添加一个属性<CHILD_DATA />.属性是ATVAL="value2".我尝试了以下方法:

$t->last_child('CHILD_DATA')->set_att{"ATVAL","value2"};
Run Code Online (Sandbox Code Playgroud)

这没用.这段代码出了什么问题?还有另一种方法吗?

xml perl xml-twig

2
推荐指数
1
解决办法
1610
查看次数

标签 统计

perl ×5

xml ×5

xml-twig ×4

html ×1

html-parsing ×1

language-agnostic ×1