#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);