
XMLReader::readInnerXml 메서드는 XML 내부 요소의 콘텐츠를 읽어오는 데 사용되지만, 내부 요소가 여러 개인 경우 이전 요소의 콘텐츠까지 함께 읽어오기 때문에 제대로 동작하지 않는 문제가 있습니다.
이 문제를 해결하려면 XMLReader::readInnerXml 메서드를 사용하기 전에 현재 요소를 읽어오지 않도록 하는 방법을 사용할 수 있습니다.
XMLReader::readInnerXml 메서드를 사용하기 전에, XMLReader::read 메서드를 사용하여 현재 요소를 읽어오지 않도록 설정할 수 있습니다.
#hostingforum.kr
php
$xmlReader = new XMLReader();
$xmlReader->xml($xmlString);
$xmlReader->read(); // 현재 요소를 읽어오지 않도록 설정
$xmlReader->readInnerXml(); // 내부 요소의 콘텐츠를 읽어오기
또한, XMLReader::readInnerXml 메서드를 사용할 때, XMLReader::moveToNextSibling 메서드를 사용하여 내부 요소를 읽어오기 전에 이전 요소를 읽어오지 않도록 설정할 수 있습니다.
#hostingforum.kr
php
$xmlReader = new XMLReader();
$xmlReader->xml($xmlString);
$xmlReader->read();
while ($xmlReader->nodeType != XMLReader::ELEMENT) {
$xmlReader->read();
}
$xmlReader->moveToNextSibling(); // 내부 요소를 읽어오기 전에 이전 요소를 읽어오지 않도록 설정
$xmlReader->readInnerXml(); // 내부 요소의 콘텐츠를 읽어오기
이러한 방법을 사용하여 XMLReader::readInnerXml 메서드를 사용할 때 내부 요소가 여러 개인 경우 이전 요소의 콘텐츠까지 함께 읽어오지 않도록 설정할 수 있습니다.
2025-08-08 04:47