gpt4 book ai didi

xml - xpath: 从 xml 中选择多个子元素属性

转载 作者:数据小太阳 更新时间:2023-10-29 02:08:05 24 4
gpt4 key购买 nike

无法获得所需的输出...也许这是不可能的,但我是 XPath 选择器的新手。

我有这样的 XML:

<submission>
<component type="X">
<audit>
<measures>
<measure id="xyz">
<reported>false</reported>
<benefit>false</benefit>
<data-elements>
<data-element id="rate1">
<reportable>false</reportable>
<comment/>
</data-element>
<data-element id="rate2">
<reportable>false</reportable>
<comment/>
</data-element>
<data-element id="rate3">
<reportable>false</reportable>
<comment/>
</data-element>
<data-element id="rate4">
<reportable>false</reportable>
<comment/>
</data-element>
</data-elements>
</measure>
<measure id="abc">
<reported>false</reported>
<benefit>false</benefit>
<data-elements>
<data-element id="rate5">
<reportable>false</reportable>
<comment/>
</data-element>
<data-element id="rate6">
<reportable>false</reportable>
<comment/>
</data-element>
<data-element id="rate7">
<reportable>false</reportable>
<comment/>
</data-element>
<data-element id="rate8">
<reportable>false</reportable>
<comment/>
</data-element>
</data-elements>
</measure>
</measures>
</audit>
</component>
</submission>

我正在尝试使用像这样的 XMLMAP 使用 XPath 选择器访问属性:

<?xml version="1.0" ?>
<SXLEMAP version="1.2">
<TABLE name="AUDIT">
<TABLE-PATH syntax="XPath">
/submission/component/audit/measures/measure
</TABLE-PATH>

<COLUMN name="MEASURE" retain="YES">
<PATH syntax="XPath">
/submission/component/audit/measures/measure@id
</PATH>
<TYPE>character</TYPE>
<DATATYPE>STRING</DATATYPE>
<LENGTH>30</LENGTH>
</COLUMN>

<COLUMN name="RATES">
<PATH syntax="XPath">
//submission/component/audit/measures/measure/data-elements/data-element/@id
</PATH>
<TYPE>character</TYPE>
<DATATYPE>STRING</DATATYPE>
<LENGTH>20</LENGTH>
</COLUMN>

<COLUMN name="REPORT">
<PATH syntax="XPath">
/submission/component/audit/measures/measure/data-elements/data-element/reportable
</PATH>
<TYPE>character</TYPE>
<DATATYPE>STRING</DATATYPE>
<LENGTH>20</LENGTH>
</COLUMN>

我的输出看起来像:

   MEASURE                           RATES                   REPORT

xyz rate4 false
abc rate8 false

我希望我的输出获得所有速率,而不仅仅是最后一个速率,例如:

   MEASURE                           RATES                   REPORT

xyz rate1 false
xyz rate2 false
xyz rate3 false
xyz rate4 false
abc rate5 false
abc rate6 false
abc rate7 false
abc rate8 false

这可以使用 XMLMAP 还是我需要其他东西?

预先感谢您的输入!

****编辑********************************************* *****;

这是一个基本的 SAS 程序,它提取 xml 并打印输出:

* set destination for output *;
LIBNAME DATA '<filepath>';

* set location of xml document and xml_map *;
LIBNAME XFILE XML '<filepath>\stack_example.xml'
XMLMAP='<filepath>\stack_import_map.xml';


* check import *;
PROC PRINT DATA= XFILE.AUDIT;
RUN;

最佳答案

我想通了...

在我的表格路径中,我需要深入到我想要开始新观察(行)的行级别,例如:

<TABLE name="AUDIT">  
<TABLE-PATH syntax="XPath">
/submission/component/audit/measures/measure/data-elements/data-element
</TABLE-PATH>

这将选择我想要的所有数据元素。

关于xml - xpath: 从 xml 中选择多个子元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com