为什么XmlTextReader在样式后跳过行:name =“T103”结束标记?

时间:2014-01-14 08:55:01

标签: c# .net xml xmltextreader

我的程序是读取content.xml文件 因此,在阅读style:name="T103"结束标记后,它将使用reader.Read()函数,然后跳转到</office:automatic-styles>标记。
将所有内容都删除到该标记。
那是为什么?

<style:style style:name="T101" style:family="text">
  <style:text-properties style:font-name="Arial1" fo:font-size="10pt" style:font-size-asian="10pt" style:font-name-complex="Arial3"/>
</style:style>
<style:style style:name="T102" style:family="text">
  <style:text-properties style:font-name="Arial1" fo:font-style="normal" style:font-style-asian="normal" style:font-name-complex="Arial3"/>
</style:style>
<style:style style:name="T103" style:family="text">
  <style:text-properties style:font-name="Arial1" fo:font-style="normal" style:font-style-asian="normal" style:font-name-complex="Arial3" style:font-size-complex="12pt"/>
</style:style>
<style:style style:name="T104" style:family="text">
  <style:text-properties style:font-name="Arial1" fo:font-style="normal" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" style:font-style-asian="normal" style:font-name-complex="Arial3" style:font-size-complex="12pt"/>
</style:style>

<style:style>代码的代码:

public void style_style()
{
    reader.MoveToFirstAttribute();
    if (reader.Name == "style:name")
    {
        if (!(reader.Value.StartsWith("Table")))
            if (reader.Value.StartsWith("T"))
                styleName = reader.Value;
        if (styleName == "T103")
            Console.Write("");
    }

}

<style:text-properties>

public void style_text_properties()
{
    while (reader.MoveToNextAttribute())
    {
        if (styleName.Length > 1)
            switch (reader.Name)
            {
                case "fo:font-style":
                    if (reader.Value == "italic")
                        isItalic = true;
                    break;
                case "style:text-underline-style":
                    if (reader.Value == "solid")
                        isUnderline = true;
                    break;
                case "fo:font-weight":
                    if (reader.Value == "bold")
                        isBold = true;
                    break;
            }
    }
}

我尝试调试,我发现在</style:style>节点之后,对于style:name="T103",它会跳过每个节点,直到</office:automatic-styles>。 该节点是所有样式节点之后的最后一个结束标记。

为什么这样做?

0 个答案:

没有答案