Извлечение значения из переменной XML

#xml #regex #xsd

#xml #регулярное выражение #xsd

Вопрос:

Программа, с которой я работаю, считывает файл определенного типа, а затем выполняет тесты с этим файлом на корректность. Тесты написаны на XML, и мне нужно добавить тест, который считывает строку комментария входных данных и пытается увидеть, присутствует ли число в этом комментарии. Что мне не удается выяснить, если я вообще могу, извлекая только определенную часть значения, которое хранится в переменной XML. например, скажем, что переменная равна NUMBER = 029. Мне нужна только часть 29, и мне нужно избавиться от нулей.

Теперь то, что я попытался сделать, это что-то вроде

 Comment = <random text>29<random test>

 testtype="format" value=". $NUMBER$. "
  

Тип теста if тест формата, который проверяет, находится ли определенный текст в строке. Что делает этот тест, так это игнорирует каждый символ до и после числа и проверяет, есть ли значение в комментарии. Однако это не сработает, потому что ЧИСЛО = 029, а комментарий содержит только 29. Это единственная переменная, с которой я могу работать, и я застрял на этом на некоторое время. Я настолько хорош в регулярных выражениях, поэтому, если я упускаю что-то очевидное, пожалуйста, дайте мне знать и спасибо всем, кто может помочь. Если есть какие-либо вопросы или нужна дополнительная информация, пожалуйста, задавайте.

Правка 1:

Под тестами, написанными на XML, я подразумеваю, что тесты представлены в этом формате

 <test type="TestType">
  <Test Expression>
<test>
  

Я знаю, что этот вопрос был объяснен не очень хорошо, мне самому было трудно придумать, что я хотел сказать, чтобы наилучшим образом описать это.

Я собираюсь посмотреть, как разбирается значение самостоятельно, и, надеюсь, это сработает

Комментарии:

1. Я не совсем уверен, что понимаю ваш вопрос. Однако, если вам необходимо обработать XML-файл, мне приходят на ум два варианта: (1) вы используете XSLT для преобразования его в какой-либо другой формат, который вам нужен, или (2) вы используете анализатор XML для его программной обработки. У меня сложилось впечатление, что вам лучше выбрать второй вариант. Вероятно, вы можете проанализировать свой XML-файл, получить DOM, перейти по нему к узлам, из которых вы хотите извлечь значения, и, наконец, получить значение (или его подстроку).

2. Что вы подразумеваете под «тесты написаны в XML»?

3. Пожалуйста, попробуйте более точно объяснить вашу проблему. Чего вы пытаетесь достичь и имеет ли XML какое-либо отношение к вашей проблеме? Кстати, ваш XML на самом деле вообще не XML, поэтому не пытайтесь анализировать его с помощью анализатора XML.

Ответ №1:

Это мой ответ на то, что, как я полагаю, является вашим вопросом («например, допустим, что переменная равна NUMBER = 029. Мне нужна только часть 29, и мне нужно избавиться от нулей «.):

 $number = intval($number);