Как получить значения элемента по имени - PullRequest
0 голосов
/ 13 мая 2019

Я использую T-SQl и xPath для запроса XML-документа.и мне нужно извлечь значение элемента по имени

. Так я изначально реализовал код "с помощью индексации элемента для доступа к элементу", но поскольку элемент может иметь кратный элемент, он больше не работаетдолжным образом.n.value ( '' ./ ФУНКЦИИ [1] / Роль [1] / КРЕДИТОПОЛУЧАТЕЛЬ [1] / GOVERNMENT_MONITORING [1] / HMDA_RACES [1] [./ HMDA_RACE / РАСШИРЕНИЕ / ULDD: Другие / ULDD: HMDA_RACE_EXTENSION / ULDD: HMDA_RACE_DETAIL/ ULDD: HMDARaceType] [1] '', '' VARCHAR (100) '')

Это xml, который я запрашиваю

<HMDA_RACES>
                                                <HMDA_RACE>
                                                    <EXTENSION>
                                                        <ULDD:OTHER xmlns:ULDD="http://www.datamodelextension.org/Schema/ULDD">
                                                            <ULDD:HMDA_RACE_EXTENSION>
                                                                <ULDD:HMDA_RACE_DESIGNATIONS>
                                                                    <ULDD:HMDA_RACE_DESIGNATION>
                                                                        <ULDD:HMDARaceDesignationType>Samoan</ULDD:HMDARaceDesignationType>
                                                                    </ULDD:HMDA_RACE_DESIGNATION>
                                                                </ULDD:HMDA_RACE_DESIGNATIONS>
                                                                <ULDD:HMDA_RACE_DETAIL>
                                                                    <ULDD:HMDARaceType>NativeHawaiianOrOtherPacificIslander</ULDD:HMDARaceType>
                                                                </ULDD:HMDA_RACE_DETAIL>
                                                            </ULDD:HMDA_RACE_EXTENSION>
                                                        </ULDD:OTHER>
                                                    </EXTENSION>
                                                </HMDA_RACE>
                                                <HMDA_RACE>
                                                    <EXTENSION>
                                                        <ULDD:OTHER xmlns:ULDD="http://www.datamodelextension.org/Schema/ULDD">
                                                            <ULDD:HMDA_RACE_EXTENSION>
                                                                <ULDD:HMDA_RACE_DETAIL>
                                                                    <ULDD:HMDARaceType>White</ULDD:HMDARaceType>
                                                                </ULDD:HMDA_RACE_DETAIL>
                                                            </ULDD:HMDA_RACE_EXTENSION>
                                                        </ULDD:OTHER>
                                                    </EXTENSION>
                                                </HMDA_RACE>
                                            </HMDA_RACES>

это то, что я пытаюсь, но яя не получаю желаемый результат.

value(''./ROLES[1]/ROLE[1]/BORROWER[1]/GOVERNMENT_MONITORING[1]/HMDA_RACES[child = "ULDD:HMDARaceType"][1]'',''VARCHAR(100)'')

успешный запрос вернул бы значение "NativeHawaiianOrOtherPacificIslander White".Я получаю только первое значение "NativeHawaiianOrOtherPacificIslander"

1 Ответ

0 голосов
/ 13 мая 2019

С точки зрения выражения xpath и использования кода xml в вашем вопросе, это выражение

*//HMDARaceType/text()

или это:

//*[local-name()='HMDARaceType']/text()

выбирает

    NativeHawaiianOrOtherPacificIslander
    White

Это то, что вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...