2011-09-29 3 views
0

공급 업체에서 제공하는 XML이 있는데 무엇을 시도해도 VB.net에서 구문 분석 할 수 없습니다. XML 초보자입니다. 이해해주십시오. 나는 vb.net 클래스와 그 오류를 만들 XSD.exe를 사용하는 것을 시도했다vb.net에서 XML 구문 분석

<?xml version='1.0'?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 

<xsd:element name="event"> 
<xsd:complexType> 
    <xsd:sequence> 
    <xsd:element name="id" type="xsd:integer"></xsd:element> 
    <xsd:element name="old_id" type="xsd:integer"></xsd:element> 
    <xsd:element name="opponent" type="xsd:string">Austin MS</xsd:element> 
    <xsd:element name="game_date" type="xsd:string">2011-08-31</xsd:element> 
    <xsd:element name="start_time" type="xsd:string">5:00PM</xsd:element> 
    <xsd:element name="end_time" type="xsd:string">8:00PM</xsd:element> 
    <xsd:element name="sport" type="xsd:string">Baseball</xsd:element> 
    <xsd:element name="level" type="xsd:string">7th</xsd:element> 
    <xsd:element name="gender" type="xsd:string">Boys</xsd:element> 
    <xsd:element name="year" type="xsd:string">2011</xsd:element> 
    <xsd:element name="season" type="xsd:string">Fall</xsd:element> 
    <xsd:element name="status" type="xsd:string">Deleted</xsd:element> 
    <xsd:element name="homeaway" type="xsd:string">Home</xsd:element> 
    <xsd:element name="facility">France</xsd:element> 
    <xsd:element name="facility_id" type="xsd:integer"></xsd:element> 
    <xsd:element name="opponent"> 
    <xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="ss_id" type="xsd:integer">19505</xsd:element> 
     <xsd:element name="name" type="xsd:string">Austin MS</xsd:element> 
    </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="location"> 
    <xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="ss_id" type="xsd:integer">108</xsd:element> 
     <xsd:element name="name" type="xsd:string">Breck School</xsd:element> 
    </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="score"> 
    <xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="result" type="xsd:string"></xsd:element> 
     <xsd:element name="ours" type="xsd:string"></xsd:element> 
     <xsd:element name="theirs" type="xsd:string"></xsd:element> 
    </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="league" type="xsd:string"></xsd:element> 
    <xsd:element name="type" type="xsd:string">Championship</xsd:element> 
    <xsd:element name="ss_id" type="xsd:string">305</xsd:element> 
    <xsd:element name="transportation" type="xsd:string"></xsd:element> 
    <xsd:element name="dismissal" type="xsd:string"></xsd:element> 
    <xsd:element name="return" type="xsd:string"></xsd:element> 
    <xsd:element name="comment"> 
    <xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="school" type="xsd:string"></xsd:element> 
     <xsd:element name="conference" type="xsd:string"></xsd:element> 
    </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="home_team" type="xsd:string">Breck - St Paul - Apple Valley</xsd:element> 
    <xsd:element name="activity_type" type="xsd:string">conference</xsd:element> 
    <xsd:element name="category" type="xsd:string"></xsd:element> 
    <xsd:element name="sub_category" type="xsd:string"></xsd:element> 
    <xsd:element name="state" type="xsd:string">MN</xsd:element> 
    </xsd:sequence> 
</xsd:complexType> 
</xsd:element> 

</xsd:schema> 

:

는 공급 업체가 나를 보내신 XML이다. XML을 제공 한 공급 업체에 연락했지만 많은 도움을받지 못했습니다. 이 XML을 함수로 퍼 올려서 XML에있는 속성과 목록을 가진 (SportEvents의) 목록을 나타낼 수 있기를 바랍니다.

나는 올바른 방향으로 나를 가리키는 데 도움이 될 것입니다. 감사

+0

게시 한 XML은 스키마 파일이며 XML 형식을 나타냅니다. XSD.exe로 어떤 오류가 있었습니까? – Oded

답변

0

내가 사용한 방법은 다음 값 중 하나를 단일 노드 또는 끌어 오기 등

configDoc.Load("filepath") 'load the file 

같은 문서를로드 http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.aspx

Dim configDoc As XmlDocument = New XmlDocument() 
Dim nodes As XmlNodeList = Nothing 
Dim stringHolder as String = "" 

system.xml 파일 기능을 구현하는 것입니다 노드 목록

stringHolder = configDoc.SelectSingleNode("/xpath").attributes.getNamedItem("attributeName").Value.toString() 

또는 내부 노드 목록.

nodes = configDoc.SelectNodes("/xpath") 
for each n as XmlNode in nodes 
    stringHolder = n.attributes.getNamedItem("attributeName").Value.toString() 
'do stuff with string 
next 

이제이 방법은 XML 노드의 속성 만 처리합니다. 내부 텍스트가 필요하다면 .innertext()를 조사 할 수 있습니다. 이것이 적어도 당신이 올바른 방향을 향하게하는 데 도움이되기를 바랍니다.

+0

당신은 system.xml을 가져와야 할 것입니다. –