【发布时间】:2016-06-01 14:07:39
【问题描述】:
我有一个需要解析的 XML 文档,以便从中提取特定值。 架构与此类似:
<sequence tag="771b,1030" vr="SQ" card="2" len="988" name="axial_length_values_sequence">
<item card="6" len="486">
<element tag="771b,0000" vr="UL" vm="1" len="4" name="PrivateGroupLength">474</element>
<element tag="771b,0010" vr="LO" vm="1" len="6" name="PrivateCreator">99CZM</element>
<element tag="771b,1008" vr="CS" vm="1" len="2" name="laterality">R</element>
<element tag="771b,1043" vr="FD" vm="1" len="8" name="mean_value_al">27.649999999999999</element>
<element tag="771b,1044" vr="FD" vm="1" len="8" name="mean_value_snr">272.5</element>
</item>
<item card="6" len="486">
<element tag="771b,0000" vr="UL" vm="1" len="4" name="PrivateGroupLength">474</element>
<element tag="771b,0010" vr="LO" vm="1" len="6" name="PrivateCreator">99CZM</element>
<element tag="771b,1008" vr="CS" vm="1" len="2" name="laterality">L</element>
<element tag="771b,1043" vr="FD" vm="1" len="8" name="mean_value_al">27.0100000000000016</element>
<element tag="771b,1044" vr="FD" vm="1" len="8" name="mean_value_snr">151.90000000000001</element>
</item>
</sequence>
<sequence tag="771b,1032" vr="SQ" card="2" len="1268" name="keratometer_values_sequence">
<item card="13" len="626">
<element tag="771b,0000" vr="UL" vm="1" len="4" name="PrivateGroupLength">614</element>
<element tag="771b,0010" vr="LO" vm="1" len="6" name="PrivateCreator">99CZM</element>
<element tag="771b,1008" vr="CS" vm="1" len="2" name="laterality">R</element>
<element tag="771b,1016" vr="FD" vm="1" len="8" name="refractive_index">1.3374999999999999</element>
<element tag="771b,1017" vr="FD" vm="1" len="8" name="quali_tag">0</element>
<element tag="771b,1049" vr="FD" vm="1" len="8" name="mean_value_r1">8.5199999999999996</element>
<element tag="771b,104a" vr="FD" vm="1" len="8" name="mean_value_d1">39.609999999999999</element>
<element tag="771b,104b" vr="FD" vm="1" len="8" name="mean_value_a1">174</element>
<element tag="771b,104c" vr="FD" vm="1" len="8" name="mean_value_r2">8.4499999999999993</element>
<element tag="771b,104d" vr="FD" vm="1" len="8" name="mean_value_d2">39.939999999999998</element>
<element tag="771b,104e" vr="FD" vm="1" len="8" name="mean_value_a2">84</element>
<element tag="771b,104f" vr="FD" vm="1" len="8" name="mean_value_zyl">0.33000000000000003</element>
</item>
<item card="13" len="626">
<element tag="771b,0000" vr="UL" vm="1" len="4" name="PrivateGroupLength">614</element>
<element tag="771b,0010" vr="LO" vm="1" len="6" name="PrivateCreator">99CZM</element>
<element tag="771b,1008" vr="CS" vm="1" len="2" name="laterality">L</element>
<element tag="771b,1016" vr="FD" vm="1" len="8" name="refractive_index">1.3374999999999999</element>
<element tag="771b,1017" vr="FD" vm="1" len="8" name="quali_tag">0.01</element>
<element tag="771b,1049" vr="FD" vm="1" len="8" name="mean_value_r1">8.4800000000000004</element>
<element tag="771b,104a" vr="FD" vm="1" len="8" name="mean_value_d1">39.799999999999997</element>
<element tag="771b,104b" vr="FD" vm="1" len="8" name="mean_value_a1">167</element>
<element tag="771b,104c" vr="FD" vm="1" len="8" name="mean_value_r2">8.3399999999999999</element>
<element tag="771b,104d" vr="FD" vm="1" len="8" name="mean_value_d2">40.469999999999999</element>
<element tag="771b,104e" vr="FD" vm="1" len="8" name="mean_value_a2">77</element>
<element tag="771b,104f" vr="FD" vm="1" len="8" name="mean_value_zyl">0.67000000000000002</element>
</item>
</sequence>
还有其他 4 个“序列”元素需要解析。
对于每个“序列”元素,我需要提取以下值: 回复
根据值(如果是 R 或 L),我需要将特定值保存两次,一次用于左侧(“L”),一次用于右侧(“R”) 例如: tag="771b,1044" 的正确值是: “272.5” 左边将是: “151.90000000000001”
我疯了!!!!谁能帮我? 如果我搜索特定标签,我可以获得单个值,但我找不到如何首先搜索“R”,然后只搜索与“R”关联的值,然后重复搜索“L”并获取关联值! !!考虑到“R”并不总是第一个元素(它也可能是“L”)。 任何帮助将不胜感激。提前谢谢大家!!
【问题讨论】:
-
我尝试使用 DOM 搜索特定元素,我可以获得一个特定标签,但在我的情况下,标签不是唯一的。 “横向性”对于每个“物品卡”存在两次,并且
-
我的回答是否解决了问题?如果是这样,请考虑接受它作为答案,否则请发表后续评论。