访问XML节点信息

18视图(30天)
1月顶华
1月顶华 2023年3月17日
评论道: 1月顶华2023年3月17日
我试图创建一个结构信息提取从一个XML文件。XML文件生成工具链。XML具有以下格式:
< Geometry_AC >
<机身>
<机身ID =“0”Name =“机身”>
< XSections >
< XSec ID =“0”name =“sec0”>
< Variable1 > 0 < / Variable1 >
如上所述如上所述<的操作> 0.000000000000000000 e + 00 < /的操作>
< Variable3 > 0.000000000000000000 e + 00 < / Variable3 >
< Variable4 > 0.000000000000000000 e + 00 < / Variable4 >
< / XSec >
< XSec ID =“1”name =“sec1”>
< XSec ID =“2”name =“sec2”>
我有访问特定的变量,例如如上所述”的操作”。“XSec”部分的数量可以改变不同的XML文件。我设法提取信息在每个“XSec”使用
进口javax.xml.xpath。*
医生= xmlread (xChange_File);
工厂= XPathFactory.newInstance;
xpath = factory.newXPath;
temp_var = getXmlValue (“Geometry_AC /机身/机身/ XSections / XSec ',的节点集,医生,xpath);
我= 0:temp_var.getLength-1
temp_struct (i + 1)。值= temp_var.item .getTextContent;
结束
与“getXmlValue”定义不同类型的处理。“节点”的代码如下:
进口javax.xml.xpath。*;
如果(比较字符串类型,的节点集))
expression_value = xpath.compile(路径);
值= expression_value。评估(医生,XPathConstants.NODESET);
结束
这提供了以下输出:
val =
0
0.000000000000000000 e + 00
0.000000000000000000 e + 00
0.000000000000000000 e + 00
我的问题是,这种提取信息的所有子节点的每个“XSec”作为一个单独的变量包含所有;②持续信息作为字符串。减少字符串可能会工作,但我觉得必须有一个更优雅的解决方案提取的子节点的特定的值。
2的评论
1月顶华
1月顶华 2023年3月17日
是的,这正是我所需要的东西。非常感谢:)

登录置评。

答案(0)

s manbetx 845


释放

R2022b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!