php удалить все узлы в файле xml - PullRequest
0 голосов
/ 13 апреля 2020

Я хотел бы удалить все ненужные узлы из строки

входной файл:

$data="<root>
  <president>
    <handle>0001</handle>
    <title>my title1</title>
    <body_html_>my description 1</body_html_>
    <vendor></vendor>
  </president>
  <president>
    <handle>0002</handle>
    <title>my title 2</title>
    <body_html_>my description 2</body_html_>
    <vendor></vendor>
  </president>
</root>";

Я хотел бы удалить все узлы handle и vendor

i test

$doc = new SimpleXMLElement($data);
$segarr1 = $doc->President;
$segarr = $segarr1->title;

unset ($segarr[0]);


echo $doc->asXml();

удалить только первый элемент

1 Ответ

2 голосов
/ 13 апреля 2020

Вам нужно выполнить итерации потомков:

$doc = new SimpleXMLElement($data);

foreach($doc->children() as $segarr1) {
    unset($segarr1->title);
}

echo $doc->asXml();

Если у вас есть дети, отличные от president, вам необходимо проверить:

if($segarr1->getName() == 'president') {
    unset($segarr1->title);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...