У меня есть код что-то вроде этого:Как остановить цикл в XML йот парсинга PHP
<?xml version="1.0" encoding="UTF-8"?>
<Personlist xmlns="http://example.org">
<Person>
<Name>Louis</Name>
<Address>
<StreetAddress>Somestreet</StreetAddress>
<PostalCode>00001</PostalCode>
<CountryName>Finland</CountryName>
</Address>
</Person>
<Person>
<Name>Rakshith</Name>
<Address>
<StreetAddress>Somestreet</StreetAddress>
<PostalCode>00001</PostalCode>
<CountryName>Finland</CountryName>
</Address>
</Person>
<Person>
<Name>Steve</Name>
<Address>
<StreetAddress>Someotherstreet</StreetAddress>
<PostalCode>43400</PostalCode>
<CountryName>Sweden</CountryName>
</Address>
</Person>
</Personlist>
Как остановить цикл, если имя «Rakshith» найдено в XML DOM разборе. И в простом XML-парсере мы можем напрямую обращаться к n-му элементу, например $ xml-> Person [0] -> Name. Но в XML dom нам нужно разбираться в foreach, пока я знаю. Есть ли такой способ, который бы соответствовал моим требованиям.
Заранее благодарен
Я думаю, вам нужен синтаксический анализатор для этого ... –
Спасибо за быстрый ответ @ eric.itzhak. Раньше я использовал simple_xml_parser(). Из-за неопределенных объектов, предложенных одним из экспертов на этом форуме, я переключился на xml dom. Теперь вы предлагаете мне саксовый парсер, теперь я немного смущен этими материалами, которые я должен выбрать. Я немного новичок в XML. Не могли бы вы помочь мне в этом, потому что в веб-службах XML, в которых мы зависим, всегда будут отсутствовать некоторые теги из одной детали в другую, что приводит к неопределенному виду объекта и прекращает выполнение. Какой лучший синтаксический анализатор XML обрабатывает это по вашему мнению? Спасибо –
Я не эксперт сам, но, насколько я знаю, вы не можете остановить синтаксические анализаторы с вашим состоянием, поэтому саксофонические парсеры для ... вещь - это и «simple_xml_parser», и тот, который вы перенесли на являются синтаксическими анализаторами dom, где весь XML встроен в память перед использованием, в то время как сдержанный из парсеров саксов состоит в том, что он основан на событиях, где вы фактически не создаете его в памяти, а повторяете его, не знаете, какой из них лучше использовать для вас, но читайте о различиях: http://stackoverflow.com/questions/6828703/what-is-the-difference-between-sax-and-dom –