-1

次の文字列の正規表現を作成するにはどうすればよいですか。「ShortCaption」と「Headline」のすべてを抽出する必要がありますか?

  <xs:element name ="ID" type ="xs:int" minOccurs ="1" maxOccurs ="1"/>     
  <xs:element name ="Type" type ="xs:string" minOccurs ="1" maxOccurs ="1"/>
  <xs:element name ="Language" type ="xs:string" minOccurs ="0" maxOccurs ="1"/>
  <xs:element name="LinkText" type ="xs:string" minOccurs ="0" maxOccurs ="1"/>
  <xs:element name="Headline" type ="xs:string" minOccurs ="0" maxOccurs ="1"/>
  <xs:element name="ShortCaption" type ="xs:string" minOccurs ="0" maxOccurs ="1"/>

ありがとう、

4

2 に答える 2

0

正規表現を使用してマークアップを解析することは、通常、嫌われます。ただし、各行に対して正規表現を使用し、各行が上記の例のように見えることを確認できる場合 (折り返しなどはありません)、これは機能します。

my $xml =~ /^.*?name\s*=\s*"(Headline|ShortCaption)"\s*type\s*=\s*"(.*?)"\s*minOccurs\s*=\s*"(.*?)"\s*maxOccurs\s*=\s*"(.*?)".*$/

my $name = $1;
my $type = $2;
my $minOccurs = $3;
my $maxOccurs = $4;

私はこれをテストしませんでしたが、非常に基本的なものであり、構築するための例を提供する必要があります. しかし、私は世界中のほとんどすべての開発者に同意します...マークアップに正規表現を使用することは、災害のレシピです。

于 2013-02-25T18:45:34.953 に答える
0

XMLで抽出するためにDOMを試してみてください!これへのリンク: http://php.net/manual/en/book.dom.php

于 2013-02-25T18:40:03.357 に答える