테스트 사이트 - 개발 중인 베타 버전입니다

정규식 질문드립니다. 채택완료

안뇽하세용 3년 전 조회 2,677

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

예를 들어서 

<dtText>

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

</dtText>

<maxSaleQty>

   <![CDATA[3]]>

</maxSaleQty>

 

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

<maxSaleQty>

</maxSaleQty>

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

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

답변 1개

채택된 답변
+20 포인트
dodam
3년 전

</p>

<p><?php</p>

<p>    $data = '<dtText></p>

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

<p></dtText></p>

<p><maxSaleQty></p>

<p>    <![CDATA[3]]></p>

<p></maxSaleQty>';</p>

<p>    $new_data = null;</p>

<p> </p>

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

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

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

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

<p> </p>

<p>    $del_str = substr($data, $start+$start_length, $end-$start-$end_length);</p>

<p>   </p>

<p>    echo str_replace($del_str,'',$data);</p>

<p>?></p>

<p>

 

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

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

로그인 후 평가할 수 있습니다

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

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

로그인