네임 스페이스가 어떻게 작동하는지 혼란 스럽습니다. 나는 Linq에 - 투 - XML의 XPath 확장을 시도하는 것이 좋습니다의 worksheet
곳 ss:Name="Datagrid"
을 얻으려고 노력했고, 그로부터 name="emailname"
... 사용하여 네임 스페이스를 사용하여 linq 쿼리를 만드는 방법 ... 구문
Imports <xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
Module Module1
Sub Main()
Dim xmlFile As String = System.AppDomain.CurrentDomain.BaseDirectory & "Datagrid.xml"
Dim root As XElement = XElement.Load(xmlFile)
''select worksheet where ss:Name="Datagrid""
'Dim dg = From item In root .......................
''get data from wokrsheet...table..row...data where = name="emailname" (not ss:name="emailname")
'Dim data = From item In dg .......................
End Sub
End Module
XML
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Datagrid">
<Table ss:ExpandedColumnCount="13" ss:ExpandedRowCount="11" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Row ss:Index="3" ss:AutoFitHeight="0">
<Cell Name="emailname">
<Data ss:Type="String">email address</Data>
</Cell>
</Row>
<Row ss:Index="4" ss:AutoFitHeight="0">
<Cell Name="username">
<Data ss:Type="String">user name</Data>
</Cell>
</Row>
</Table>
</Worksheet>
<Worksheet ss:Name="Properties">
<Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="3" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="15">
<Row>
<Cell>
<Data ss:Type="Number">1</Data>
</Cell>
</Row>
<Row>
<Cell>
<Data ss:Type="Number">2</Data>
</Cell>
</Row>
<Row>
<Cell>
<Data ss:Type="Number">3</Data>
</Cell>
</Row>
</Table>
</Worksheet>
</Workbook>
이 봐, 당신은 이미 구문을 "'사용하고 item. @ ss : Name' "! 그래서 나는 당신의 질문을 오해 했습니까? –
나는 그렇게 생각한다. ss : Name = "Datagrid"라는 이름의 DataGrid를 얻으려고하고 있는데, 그 이름은 "data"(ss : name = "data"가 아닌) 인 노드가된다. – WhiskerBiscuit
기본 네임 스페이스 'xmlns')는'xmlns : ss'와 같기 때문에'name'과'ss : name'은 같습니다. –