【发布时间】:2016-02-05 17:38:38
【问题描述】:
跳过当前节点的子元素。
代码如下:
var reader = DocumentFormat.OpenXml.OpenXmlReader.Create(worksheetPart);
// Header
while (reader.Read())
{
if (reader.ElementType == typeof (Row)) // reader is at row r="1"
{
headers = GetHeaders((Row)reader.LoadCurrentElement(), _doc.WorkbookPart);
reader.ReadNextSibling(); // reader is at row r="2"
break;
}
}
//...
reader.Skip(); // reader is at row r="3"
工作表 xml(剪切):
<x:sheetData xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:row r="1" spans="1:1">
<x:c r="A1" s="1" t="s">
<x:v>36</x:v>
</x:c>
</x:row>
<x:row r="2" spans="1:1"> <!-- before calling Skip reader is here -->
<x:c r="A2" s="1" t="s">
<x:v>38</x:v>
</x:c>
</x:row> <!-- I expect reader to be here after calling Skip because closing tag != child element -->
<x:row r="3" spans="1:1"> <!-- after calling Skip reader goes here -->
<x:c r="A3" s="1" t="s">
<x:v>38</x:v>
</x:c>
</x:row>
</x:sheetData>
为什么Skip 也跳过</x:row>?
【问题讨论】:
标签: c# xml openxml xlsx xmlreader