Я пытаюсь очистить некоторый код SQL. В настоящее время у меня есть XML как:
DECLARE @xml xml = N'<PubmedArticleSet>
<PubmedArticle>
<MedlineCitation Status="MEDLINE" Owner="NLM">
<ArticleIdList>
<ArticleId IdType="pii">0092-8674(92)90516-F</ArticleId>
<ArticleId IdType="pubmed">1423608</ArticleId>
<ArticleId IdType="doi">10.1016/0092-8674(92)90516-f</ArticleId>
</ArticleIdList>
</PubmedData>
</PubmedArticle>
</PubmedArticleSet>'
И мне нужно получить значение ArticleId
с атрибутом
IdType ="pubmed"
Я хотел бы что-то вроде и XQUERY
метод, который мог бы:
DECLARE @PMID NVARCHAR(15)
SET @PMID = @xml.value('(//PubmedData/ArticleIdList/ArticleId/@IdType)[1]', 'varchar(15)' )
Но это тянет IdType "pii" первого узла. И
SET @PMID = @xml.value('(//PubmedData/ArticleIdList/ArticleId/@IdType = "pubmed")[1]', 'varchar(15)' )
Возвращает истину.
Есть ли способ отфильтровать по "опубликованному", а затем получить число 1423608? Так что @PMID
будет тогда равно 1423608.