XMLPATH - невозможно получить значение от xml - PullRequest
0 голосов
/ 27 января 2020
            <report>
            <document>
            <content>
            <container flag="SEPARATE">
                <relationship>CONTAINS</relationship>
                <concept>
                    <value>T9900-01</value>
                    <scheme>
                        <designator>99GEMS</designator>
                    </scheme>
                    <meaning>User-defined concepts</meaning>
                </concept>
                <container flag="SEPARATE">
                    <relationship>CONTAINS</relationship>
                    <concept>
                        <value>T9900-02</value>
                        <scheme>
                            <designator>99GEMS</designator>
                        </scheme>
                        <meaning>Measurement</meaning>
                    </concept>
                    <text>
                        <relationship>HAS CONCEPT MOD</relationship>
                        <concept>
                            <value>T9900-04</value>
                            <scheme>
                                <designator>99GEMS</designator>
                            </scheme>
                            <meaning>Label</meaning>
                        </concept>
                        <value>IVC Insp</value>
                    </text>
                    <code>
                        <relationship>HAS CONCEPT MOD</relationship>
                        <concept>
                            <value>G-0373</value>
                            <scheme>
                                <designator>SRT</designator>
                            </scheme>
                            <meaning>Image Mode</meaning>
                        </concept>
                        <value>G-03A2</value>
                        <scheme>
                            <designator>SRT</designator>
                        </scheme>
                        <meaning>2D mode</meaning>
                    </code>
                    <num>
                        <relationship>CONTAINS</relationship>
                        <concept>
                            <value>121206</value>
                            <scheme>
                                <designator>DCM</designator>
                            </scheme>
                            <meaning>Distance</meaning>
                        </concept>
                        <code>
                            <relationship>HAS CONCEPT MOD</relationship>
                            <concept>
                                <value>121401</value>
                                <scheme>
                                    <designator>DCM</designator>
                                </scheme>
                                <meaning>Derivation</meaning>
                            </concept>
                            <value>R-00317</value>
                            <scheme>
                                <designator>SRT</designator>
                            </scheme>
                            <meaning>Mean</meaning>
                        </code>
                        <code>
                            <relationship>HAS PROPERTIES</relationship>
                            <concept>
                                <value>121404</value>
                                <scheme>
                                    <designator>DCM</designator>
                                </scheme>
                                <meaning>Selection Status</meaning>
                            </concept>
                            <value>121412</value>
                            <scheme>
                                <designator>DCM</designator>
                            </scheme>
                            <meaning>Mean value chosen</meaning>
                        </code>
                        <value>**0.81897100540927**</value>
                        <unit>
                            <value>cm</value>
                            <scheme>
                                <designator>UCUM</designator>
                            </scheme>
                            <meaning>centimeter</meaning>
                        </unit>
                    </num>
                    <num>
                        <relationship>CONTAINS</relationship>
                        <concept>
                            <value>121206</value>
                            <scheme>
                                <designator>DCM</designator>
                            </scheme>
                            <meaning>Distance</meaning>
                        </concept>
                        <value>0.81897100540927</value>
                        <unit>
                            <value>cm</value>
                            <scheme>
                                <designator>UCUM</designator>
                            </scheme>
                            <meaning>centimeter</meaning>
                        </unit>
                    </num>
                </container>
            </container>        
            </content>
            </document>
            </report>

У меня есть xml, и я пытаюсь создать XMLPATH для получения значения 0,81897100540927

ЕСЛИ я использую:

report / document / содержимое / контейнер / контейнер [concept [@ codValue = 'T9900-01' и @ codScheme = '99GEMS']] / контейнер [concept [@ codValue = 'T9900-02' и @ codScheme = '99GEMS'] и код / ​​значение [@ codValue = 'G-03A2' и @ codScheme = 'SRT']] / num [concept [@ codValue = '121206' и @ codScheme = 'DCM'] и код / ​​значение [@ codValue = '121412' и @ codScheme = 'DCM']] [1] / value

тогда я получаю правильное значение, но у меня возникают проблемы с получением всех других значений, которые находятся в других контейнерах и только вещь, которая отличается, находится в / text / value-> "IV C Insp" (другие имеют AT, Ae arcos., ..).

Итак, я попытался:

отчет / документ / содержимое / контейнер / контейнер [concept [@ codValue = 'T9900-01' и @ codScheme = '99GEMS']] / container [concept [@ codValue = 'T9900-02' и @ codScheme = '99GEMS'] и текст / значение [@ codValue = 'IV C insp']] / num [concept [@ codValue = '121206' и @codScheme = 'DCM'] и код / ​​значение [@ codValue = '121412' и @ codScheme = 'DCM']] [1] / значение

, но не работает.

1 Ответ

0 голосов
/ 28 января 2020

Я не совсем уверен в вашем фактическом документе, но строго основываясь на вашем xml выше, единственное, что я могу видеть о цели, которая делает его уникальным, это то, что он находится в <container>, который имеет, среди его детей <value> с текстом IVC Insp; это происходит дважды, но у <container> с целью (в отличие от другой) также есть <num> дочерний элемент, который сам имеет <code> дочерний элемент. Цель находится в <value> потомке этого <num>. Таким образом, при этом цель (опять же, в вашем xml выше) может быть выбрана с помощью следующего выражения xpath:

//container[//value['IVC Insp']]/num[code]/value

output:

0.81897100540927

...