Для начала, я хотел бы спросить, есть ли разница между следующими двумя утверждениями для узлов XML:Проверьте, существует ли узел с помощью XSLT
- проверки, является ли узел пустого узла;
- проверить, существует ли узел или нет;
Предположим, что у меня есть файл XML, как это:
<claim_export_xml>
<claim_export_xml_row>
<claim_number>37423</claim_number>
<total_submitted_charges>0</total_submitted_charges>
<patient_control_no/>
<current_onset_date>2009-06-07 00:00:00</current_onset_date>
и я хочу, чтобы проверить, существует ли узел "current_onset_date" или нет, я использовал следующий XSLT:
<xsl:for-each select="claim_export_xml_row ">
<xsl:if test="claim_number =$mother_claim_no and /current_onset_date ">
Для каждого цикла есть некоторая логика, с которой мне приходится иметь дело, чтобы цикл работал. Но после запуска этого XSLT я получил неправильный результат, данные XML не будут захвачены моим XSLT. Но я не думаю, что использование «current_onset_date = '» также является правильным, так как оно проверяет «current_onset_date ничего не содержит».
Может ли кто-нибудь сказать мне, где моя ошибка, а также помочь мне с моим вопросом, указанным в начало, спасибо!
когда я избавлюсь от ведущего /, он будет жаловаться что это недопустимый xpath, а «и» - опечатка, извините – Kevin
. Какое сообщение об ошибке вы получаете, когда вы удаляете /? Я тестировал аналогичную конструкцию, и она отлично работала. – biziclop
он просто жалуется, что этот XPath недействителен, никаких конкретных аргументов. Тем не менее, я нашел обходное решение, которое использует count (current_onset_date)! = 0. Как вы думаете, он делает правильное тестирование? – Kevin