0

次のような変数に XML のブロックがあります。

<DailySchedule ID="1363108332926" Name="Daily Backup" Hour="11" Minute="0" Duration="-1"     BackupType="FILE" LastUpdated="1363108332926" Interval="-1" EnableSkipBackup="N"/><DailySchedule ID="1363699291763" Name="Schedule3" Hour="21" Minute="0" Duration="-1" BackupType="FILE" LastUpdated="1363699291763" Interval="-1" EnableSkipBackup="N"/><WeeklySchedule ID="1363697754949" Name="Schedule0" Sun="N" Mon="Y" Tue="Y" Wed="N" Thu="N" Fri="N" Sat="N" Hour="21" Minute="0" Duration="-1" BackupType="FILE" LastUpdated="1363697754949" Interval="-1" EnableSkipBackup="N"/><MonthSchedule ID="1363698082481" Name="Schedule1" Occurrence="Last" Criteria="Weekday" Date="0" Hour="21" Minute="0" Duration="-1" BackupType="FILE" LastUpdated="1363698082481" EnableSkipBackup="N"/>

スケジュールの ID に基づいて、XML ブロック全体を文字列から削除する必要があります。たとえば、ID が 1363697754949 の場合、削除する必要があります。<WeeklySchedule ID="1363697754949" Name="Schedule0" Sun="N" Mon="Y" Tue="Y" Wed="N" Thu="N" Fri="N" Sat="N" Hour="21" Minute="0" Duration="-1" BackupType="FILE" LastUpdated="1363697754949" Interval="-1" EnableSkipBackup="N"/>

試してみstr_replace('1363697754949', '', $xmlString);ましたが、実際の数字だけが削除されます。XML タグ全体を削除する必要があります。これを達成するために使用できるワイルドカードやその他のパタ​​ーンはありますか? ありがとうございました!

4

1 に答える 1

1

最善の解決策は、有効な XML ドキュメントを作成し、適切なライブラリを使用してそれを操作することです。より高速なソリューションはpreg_replace()、次のように use である可能性があります。

preg_replace('/<([^>]+)ID="1363697754949"([^>]+)>/', '', $yourString);
于 2013-03-22T13:45:08.477 に答える