は、私は、文字列の入力を持って存在しない可能性があります。Perlの正規表現のマッチング:キーワードは、以下のような
<Name>IncludeLeafPortfolios</Name><DataType>Boolean</DataType><Value>True</Value>
<Name>HierarchyDate</Name><DataType>Int</DataType><IsFixed>false</IsFixed>
<Name>HierarchyDate</Name><DataType>Int</DataType>
<Name>HierarchyDate</Name><DataType>Int</DataType><Value>0</Value><IsFixed>false</IsFixed>
<Name>HierarchyDate</Name><DataType>Int</DataType><Value>0</Value><IsFixed>false</IsFixed>
名前タグが常に存在し、関心があります。 DataTypeは重要ではありません。 値タグとIsFixedタグが存在する場合と存在しない場合があります。目標はValueタグ、IsFixedタグのいずれかが存在する場合、またはその両方が存在する場合にキャプチャすることです。
私のソリューションが動作していません:示唆
$element =~ m/^<Name>([\w\s]*)<\/Name>.*([<Value>[\w+\d+]<\/Value>]?)(<IsFixed>[\w+]<\/IsFixed>])?$
してください。ありがとう。
:あなたは可能性があるため、非常に問題を単純化する
、:のようなもの。 i){}カッコをarount。*とすると、ショートカット評価のために両方のタグが存在すれば、最初の値だけを得ることができます。 – Shiping
あなたはそれがあなたのXMLがどのように見えるか_exactly_のですか?それはちょっと奇妙な構造に見えます。 (たとえば、名前要素の '親'ノードが必要です)。 – Sobrique