【发布时间】:2012-05-23 11:13:22
【问题描述】:
在数据加载中,似乎某些 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 属性及其关联的子字段属性)
【问题讨论】: