2010-10-21 1 views
0

Я пытаюсь использовать DOMDocument для доступа к XML-файлу, поиска данных, соответствующих определенным критериям, и затем удалять узел, содержащий его, если это так. Затем мне нужно создать новый XML-файл с оставшимися данными.Доступ к XML-файлу и управление им с помощью DOMDocument

Ниже приведена функция, которую я использую, с $ current_balances является полным путем к файлу XML, который я хочу использовать. Я ищу конкретную дату транзакции (которую я буду менять на переменную, которая работает), и если эта дата будет найдена, мне нужно будет удалить узел, связанный с этой датой.

porblem, хотя в том, что я получаю следующее сообщение об ошибке, и я не могу понять, почему -

Предупреждение: DOMDocument :: loadXML() [domdocument.loadxml]: Начальный тег ожидается , «<» не найден в Сущности, линия: 1

Я надеюсь, что имеет смысл, и я надеюсь, что кто-то может помочь.

Спасибо.

function get_xml_data($current_balances = null){ 
$doc = new DOMDOcument; 
$doc->loadxml($current_balances); 

$xpath = new DOMXpath($doc); 
foreach($xpath->query('//data[record/LastAccountsTransactionDate="2010-10-08"]') as $node) { 
    $node->parentNode->removeChild($node); 
} 
echo $doc->savexml(); 
} 

ответ

0

Загрузка XML, по-видимому, является корнем вашей проблемы и определяет, какая часть файла XML вызывает ошибку.

Если вы можете подтвердить, что BOM в файле не виноват, увидеть это: What would cause DOMDocument.load to fail loading XML from a URL that is accessible?

+0

Спасибо за ответ. Я теперь обнаружил загрузку и сохранение, в отличие от loadxml и savexml, поэтому теперь я могу войти в документ, а затем сохранить его как другой. Единственный бит, на который я не уверен сейчас, - это цикл прохождения каждой даты, убедитесь, что он не старше 6 месяцев (180 дней) и удаляет его, если он есть. –