所以例如
选择此节点时
<p>
This is an open access article under the terms of the
<url href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative Commons Attribution‐NonCommercial‐NoDerivs</url>
License, which permits use and distribution in any medium, provided the original work is properly cited, the use is non‐commercial and no modifications or adaptations are made.
</p>
只有带有url标签的文字我想保留
目前我可以使用以下sql
从中选择所有内容select
isnull(pMetaUnitlegal.value('(*:p/node())[1]','varchar(255)') ,'')
+ isnull(pMetaUnitlegal.value('(*:p/node())[2]','varchar(255)') ,'')
+ isnull(pMetaUnitlegal.value('(*:p/node())[3]','varchar(255)') ,'') legal_statement
from XMLwithOpenXML
OUTER APPLY XMLData.nodes('/*:component/*:header/*:publicationMeta[@level = "unit"]/*:legalStatement') pmul(pMetaUnitlegal)
我得到了
根据知识共享署名 - 非商业性使用 - 非执照许可条款,这是一篇开放获取文章,允许在任何介质中使用和分发,前提是原始作品被正确引用,使用是非商业性的,不得修改或做出了改编。
但我真正想要的是
<p>
This is an open access article under the terms of the
<url href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative Commons Attribution‐NonCommercial‐NoDerivs</url>
License, which permits use and distribution in any medium, provided the original work is properly cited, the use is non‐commercial and no modifications or adaptations are made.
</p>
仍然嵌入了html标记
当我使用text()
评估器时,我得到的数据更少。 url节点完全丢弃
根据许可条款,这是一个开放获取的文章,允许在任何介质中使用和分发,前提是原始作品被正确引用,使用是非商业性的,不做任何修改或改编。
非常欢迎任何建议。
这些数据将从网页上的数据库中显示出来,这样如果我可以保存html标签就可以了。
答案 0 :(得分:0)
您可以尝试使用XML方法query()
而不是value()
来获取原始XML数据,例如:
select
CONVERT(VARCHAR(MAX), pMetaUnitlegal.query('*:p')) legal_statement
from XMLwithOpenXML
OUTER APPLY
XMLData.nodes('/*:component/*:header/*:publicationMeta[@level = "unit"]/*:legalStatement') pmul(pMetaUnitlegal)
这是演示的一个工作示例:
declare @xml XML = '<p>
This is an open access article under the terms of the
<url href="http://creativecommons.org/licenses/by-nc-nd/3.0/">Creative Commons Attribution‐NonCommercial‐NoDerivs</url>
License, which permits use and distribution in any medium, provided the original work is properly cited, the use is non‐commercial and no modifications or adaptations are made.
</p>'
select CONVERT(VARCHAR(MAX), @xml.query('p'))
<强> Sqlfiddle Demo
强>