在数据加载中,似乎一些 XML 属性映射不正确,我现在正在尝试纠正这个问题,但我正在努力解决 MySQL 对此 XML 列的处理。
我想更正所有出现的带有子字段(带有属性'code="3"')的字段(带有属性'tag="520"')的XML属性(非值)。下面的查询返回 0 行受影响,1 行找到。关于如何实现这一目标的任何线索。
UPDATE biblioitems
SET marcxml = UpdateXML(marcxml,'datafield[@tag="520"]/subfield[@code="3"]',
'datafield[@tag="520"][@ind1="3"]/subfield[@code="a"]')
WHERE biblionumber = '220405';
为了清楚起见,包括 XML 片段:
原始片段
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="f">article</subfield>
</datafield>
<datafield tag="520" ind1=" " ind2=" ">
<subfield code="3">A description of something here</subfield>
</datafield>
<datafield tag="655" ind1=" " ind2=" ">
<subfield code="a"></subfield>
</datafield>
我想要的结果是:
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="f">article</subfield>
</datafield>
<datafield tag="520" ind1="3" ind2=" ">
<subfield code="a">A description of something here</subfield>
</datafield>
<datafield tag="655" ind1=" " ind2=" ">
<subfield code="a"></subfield>
</datafield>
无法弄清楚如何突出显示代码块中的更改(它是 tag="520" 数据字段中的 ind1 属性,它是关联的子字段属性)