2012-11-22 6 views
0
<GetDataSetResult> 
     <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 
      <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> 
      <xs:complexType> 
       <xs:choice minOccurs="0" maxOccurs="unbounded"> 
       <xs:element name="MyTable"> 
        <xs:complexType> 
        <xs:sequence> 
         <xs:element name="myColumn" type="xs:string" minOccurs="0" /> 
        </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
       </xs:choice> 
      </xs:complexType> 
      </xs:element> 
     </xs:schema> 
     <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> 
      <NewDataSet xmlns=""> 
      <MyTable diffgr:id="MyTable1" msdata:rowOrder="0"> 
       <myColumn>Ahmet</myColumn> 
      </MyTable> 
      <MyTable diffgr:id="MyTable2" msdata:rowOrder="1"> 
       <myColumn>Ali</myColumn> 
      </MyTable> 
      <MyTable diffgr:id="MyTable3" msdata:rowOrder="2"> 
       <myColumn>Veli</myColumn> 
      </MyTable> 
      <MyTable diffgr:id="MyTable4" msdata:rowOrder="3"> 
       <myColumn>Osman</myColumn> 
      </MyTable> 
      <MyTable diffgr:id="MyTable5" msdata:rowOrder="4"> 
       <myColumn>Mahmut</myColumn> 
      </MyTable> 
      <MyTable diffgr:id="MyTable6" msdata:rowOrder="5"> 
       <myColumn>Memed</myColumn> 
      </MyTable> 
      </NewDataSet> 
     </diffgr:diffgram> 
     </GetDataSetResult> 

위의 XML에서 msdata:IsDataSet 속성을 사용하여 xs:element을 어떻게 선택합니까? 나는 코드를 시도했지만 성공하지 못했다. 당신의 XPath에 대해이 속성은 그 속성 값 true을 가지고 이러한 요소를 선택할 수 없거나 descendant::xs:element[@msdata:IsDataSet = 'true']입니다 이러한 요소를 선택 descendant::xs:element[@msdata:IsDataSet] 필요하므로XMLDocument 네임 스페이스가있는 XPATH를 사용하여 노드를 선택하십시오.

Dim doc As New XmlDocument() 
doc.Load("test.xml") 
Dim root As XmlNode = doc.DocumentElement 

Dim nsmgr As New XmlNamespaceManager(doc.NameTable) 
nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema") 
nsmgr.AddNamespace("msdata", "urn:schemas-microsoft-com:xml-msdata") 

Dim node As XmlNode = root.SelectSingleNode(_ 
    "descendant::xs:element[msdata:IsDataSet]", nsmgr) 
Console.WriteLine(node.InnerXml) 

답변

0

문제는 다른 곳에서 발생했습니다. XML을 파일에서 메모리로 읽는 동안 이상한 일부 내부 노드에 대해 "<"">" 대신 "&lt;""&gt;"이 포함됩니다.

내가 바꿔서 문제가 해결되었습니다.

0

IsDataSet는 속성입니다.

+0

이것은 작동하지 않습니다. –

관련 문제