hasFolder
XML 파일 아래에서 속성 값 을 검색하려고했지만 내가 작성한 쿼리를 작동하지 못했습니다. 올바른 결과를 얻을 수 있도록 도와 주시겠습니까?
내가 작성한 쿼리가 작동하지 않습니다.
;with xmlnamespaces('http://www.omg.org/XMI' as xmi,
'rochade:scanboxi:150' as rim,
'http://www.asg.com/rochade/xml/xmiExtension/1.0' as rxe)
select
data,
data.value('(/xmi:XMI/rim:Repository/rim:name)[1]', 'varchar(max)')
from
Testxml
XML 데이터 :
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:xmi="http://www.omg.org/XMI" xmi:version="2.0"
xmlns:rim="rochade:scanboxi:150"
xmlns:rxe="http://www.asg.com/rochade/xml/xmiExtension/1.0" >
<xmi:Documentation>
<xmi:exporter>Rochade SAX Import/Exporter</xmi:exporter>
<xmi:exporterVersion>2.10.xx</xmi:exporterVersion>
<xmi:Extension extender="ASG-Rochade XML Facilities">
<rxe:importModes>
<mode category="ATTRIBUTE">KEEP</mode>
<mode category="ATTRIBUTE.*.BOXI_HAS_INSTANCE">REMOVE</mode>
<mode category="ATTRIBUTE.BOXI_RESULT_OBJECT.BOXI_SOURCED_FROM_COLUMN">REMOVE</mode>
<mode category="ATTRIBUTE.BOXI_CRYSTAL_COLUMN.BOXI_CR_SOURCE_COLUMN_REF">REMOVE</mode>
<mode category="ATTRIBUTE.BOXI_CRYSTAL_TABLE.BOXI_CR_SOURCE_TABLE_REF">REMOVE</mode>
<mode category="ATTRIBUTE.BOXI_WEBI_REPORT.BOXI_HAS_PROMPT">REMOVE</mode>
<mode category="ATTRIBUTE.BOXI_REPORT.BOXI_HAS_REPORT_ELEMENT">REMOVE</mode>
</rxe:importModes>
</xmi:Extension>
</xmi:Documentation>
<rim:Repository xmi:id="_1" rim:name="@BOBJPROD" >
<rim:hasFolder xmi:type="rim:Folder" xmi:id="_3550" rim:name="/FOLDERS/AdHoc/ARIOT AdHoc/Finance - Arizona/DSS" rim:shortName="DSS" rim:cmsScanTime="20150911 - 17:00:46" rim:cmsScanUser="TU01822" rim:cmsCreTime="20120802 - 16:25:38" rim:cmsModTime="20120802 - 16:25:38" rim:sID="28341084" rim:cUID="AdcZXEQ8xUFLgEtZyS9IW0Y" rim:pCUID="AWtaU4UM3iRBkI_lYBnXbns" >
<rim:desc></rim:desc>
<rim:hasBoObj xmi:type="rim:Webi" xmi:id="_17218" rim:name="RRIS - Modifier Report" rim:owner="JXM10" rim:author="JXM10" rim:cmsCreTime="20120822 - 10:38:24" rim:cmsModTime="20121228 - 12:03:46" rim:cmsScanTime="20150911 - 17:00:46" rim:cmsScanUser="TU01822" rim:sID="28915038" rim:cUID="ASQ.gXvnAt9FqI7.AH7Gg2k" rim:pCUID="AdcZXEQ8xUFLgEtZyS9IW0Y" rim:mustFillContexts="false" rim:mustFillPassword="false" rim:mustFillPrompts="false" rim:docLocaleType="LOCALE" rim:formatOption="Webi" rim:repSize="170,616" >
<rim:desc>Total Gross Revenue Report</rim:desc>
<rim:scanStat>ScanState OK </rim:scanStat>
<rim:scanMessages>ScanRc 0
ScanTime 20150911 - 17:00:46
NO ScanMessages.</rim:scanMessages>
<rim:keywords>Stats, Patient Visits, Gross Revenue</rim:keywords>
<rim:bindStat>UNBOUND</rim:bindStat>
<rim:hasReportField xmi:type="rim:ReportField" xmi:id="_860105" rim:name="Count" rim:fldType="VariableExpression" rim:qualification="MEASURE" rim:formulaLangId="[Count]" >
<rim:formula>=1</rim:formula>
</rim:hasReportField>
<rim:hasReportField xmi:type="rim:ReportField" xmi:id="_860058" rim:name="DP0.CPT Code" rim:fldType="DPExpression" rim:qualification="DIMENSION" rim:formulaLangId="[CPT Code]" rim:unvKey="CPT.CPT Code" >
<rim:calcRef xmi:type="rim:ResultObj" xmi:idref="_860223" />
</rim:hasReportField>
<rim:hasReportField xmi:type="rim:ReportField" xmi:id="_860077" rim:name="DP0.CPT Description" rim:fldType="DPExpression" rim:qualification="DIMENSION" rim:formulaLangId="[CPT Description]" rim:unvKey="CPT.CPT Description" >
<rim:calcRef xmi:type="rim:ResultObj" xmi:idref="_860224" />
</rim:hasReportField>
네임 스페이스가 모두 훌륭하고 적절하게 설정되어 있습니다. 문제가되지 않습니다. 그러나 속성과 요소를 혼합하고 있습니다. 질문은 hasFolder
속성 에 대해 묻지 만 실제로는 속성이 많은 요소 입니다. 표시되는 코드는 실제로 name
속성 을 읽으려고 하지만 요소 인 것처럼 주소를 지정합니다.
당신이 검색 할 경우 name=...
속성 로부터 <rim:Repository>
요소를, 당신은이 XQuery를 사용해야합니다 :
;with xmlnamespaces('http://www.omg.org/XMI' as xmi,
'rochade:scanboxi:150' as rim,
'http://www.asg.com/rochade/xml/xmiExtension/1.0' as rxe)
select
data.value('(/xmi:XMI/rim:Repository/@rim:name)[1]', 'varchar(max)')
from
Testxml
이름의 시작 부분 에를 넣어 속성 에 관심이 있음을 나타내야합니다 @
.
전체 <rim:hasFolder>
요소 를 XML 조각으로 검색하려면 다음 XQuery를 사용해야합니다.
;with xmlnamespaces('http://www.omg.org/XMI' as xmi,
'rochade:scanboxi:150' as rim,
'http://www.asg.com/rochade/xml/xmiExtension/1.0' as rxe)
select
data.query('(/xmi:XMI/rim:Repository/rim:hasFolder)[1]')
from
Testxml
업데이트 :<rim:hasFolder>
요소 에서 단일 속성을 검색 하려면 다음 구문을 사용하십시오.
전체 <rim:hasFolder>
요소 를 XML 조각으로 검색하려면 다음 XQuery를 사용해야합니다.
;with xmlnamespaces('http://www.omg.org/XMI' as xmi,
'rochade:scanboxi:150' as rim,
'http://www.asg.com/rochade/xml/xmiExtension/1.0' as rxe)
select
data.value('(/xmi:XMI/rim:Repository/rim:hasFolder/@rim:name)[1]', 'varchar(200)')
from
Testxml
필요에 따라 다른 속성에 맞게 조정
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다