채택완료

정규식 질문드립니다.

특정 xml 문자에서 특정 태그 안에 있는 내용이 이상한값이 있는게 있어서 

예를 들어서 

<dtText>

   <![CDATA[블루/80]]>

</dtText>

<maxSaleQty>

   <![CDATA[3]]>

</maxSaleQty>

 

이두개가 있다면 아래 maxSaleQty 의 데이터만 삭제가 가능한가요?

<maxSaleQty>

</maxSaleQty>

이런식으로요 안에 내용 아예삭제하고 싶습니다.

|

답변 1개

채택된 답변
+20 포인트

Copy
<?php

    $data = '<dtText>

    <![CDATA[블루/80]]>

</dtText>

<maxSaleQty>

    <![CDATA[3]]>

</maxSaleQty>';

    $new_data = null;

 

    $start = strpos($data, "<maxSaleQty>");

    $start_length = mb_strlen("<maxSaleQty>");

    $end = strpos($data, "</maxSaleQty>");

    $end_length = mb_strlen("</maxSaleQty>");

 

    $del_str = substr($data, $start+$start_length, $end-$start-$end_length);

   

    echo str_replace($del_str,'',$data);

?>

 

느낌 흘러가는대로 작성한거라 깔끔하지는 않습니다.

작성자분이 원하시는대로 maxSaleQty 안에 있는 문자열 제거는 정상적으로 됩니다.

답변을 작성하려면 로그인이 필요합니다.