Если у меня есть три набора данных, скажем:
<note><from>Me</from><to>someone</to><message>hello</message></note>
<note><from>Me</from><to></to><message>Need milk & eggs</message></note>
<note><from>Me</from><message>Need milk & eggs</message></note>
и я использую simplexml, есть ли способ сделать простую проверку xml на наличие пустого / отсутствующего тега автоматически?
Я бы хотел, чтобы результат был:
FROM TO MESSAGE
Me someone hello
Me NULL Need milk & eggs
Me NULL Need milk & eggs
Прямо сейчас я делаю это вручную, и я быстро понял, что это займет очень много времени, чтобы сделать это для длинных XML-файлов.
Мой текущий пример кода:
$xml = simplexml_load_string($string);
if ($xml->from != "") {$out .= $xml->from."\t"} else {$out .= "NULL\t";}
//repeat for all children, checking by name
Иногда порядок также отличается, может быть XML с:
<note><message>pick up cd</message><from>me</from></note>
поэтому итерации по дочерним элементам и проверка по количеству индексов не работают.
Фактические xml-файлы, с которыми я работаю, имеют тысячи строк каждый, поэтому я, очевидно, не могу просто кодировать каждый тег.