第十二章 XML其他示例
其他示例
Flexible Reader类
/// desc:灵活读取类
ClassMethod Read(mydir, myfile, class, element)
{
set reader=##class(%XML.Reader).%New()
if $extract(mydir,$length(mydir))'="/" {set mydir=mydir_"/"}
set file=mydir_myfile
set status=reader.OpenFile(file)
if $$$ISERR(status) {do $System.Status.DisplayError(status)}
do reader.Correlate(element,class)
while reader.Next(.object,.status)
{
if $$$ISERR(status) {do $System.Status.DisplayError(status)}
set status=object.%Save()
if $$$ISERR(status) {do $System.Status.DisplayError(status)}
}
}
请注意,当读入Person对象时,会自动读入其相应的Address对象。

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9VqwzNP-1608850948003)(3E1D939266954ED48BDAEA9B8086B11E)]](https://img-blog.csdnimg.cn/20201225070433434.png)