格式化XML标签

时间:2012-06-13 15:54:32

标签: c# asp.net xml

使用此XML文件 -

<Instructions>
  <Admin>
  <Instruction>
    Steps must be completed in order.&lt;/br&gt;
    1. Set dates&lt;/br&gt;
    2. Import.&lt;/br&gt;
    3. Generate.&lt;/br&gt;
  </Instruction>
  <Style>
    <padding-left value="50px"/>
    <padding-right value="0px"/>
  </Style>
  </Admin>
</Instructions>

这段代码 -

    public void LoadInstructions(String instructionKey) {
        XmlNode instLabel = mPropsDoc.SelectSingleNode("ApplicationProperties/Instructions/Admin/Instruction");
        XmlNode instStyle = mPropsDoc.SelectSingleNode("ApplicationProperties/Instructions/Admin/Style");
        Label ctlInst = new Label();
        ctlInst.Text = instLabel.InnerText;

        foreach (XmlElement styles in instStyle.ChildNodes) {
            ctlInst.Style.Add(styles.Name, styles.Attributes["value"].Value);
        }

        PageContent.Controls.AddAt(0, ctlInst);
    }

其中PageContent是我页面上的ContentPlaceHolder。

样式仅应用于第一个元素,控件呈现为跨度控件。

为什么它不是作为标签呈现的?为什么样式只应用于第一行?

2 个答案:

答案 0 :(得分:1)

如果你想要格式化格式化,你必须将它变成CDATA元素

<Instruction>
<![CDATA[Steps must be completed in order</br>
               1. Set dates</br>
               2. Import</br>     
               3. Generate</br>]]>
</Instruction>

说出来,我会对这个标记进行标记,然后在需要时构建演示文稿,它将继续成为PIA。

答案 1 :(得分:0)

据我所知,System.Web.UI.Label元素(我认为你正在使用)始终呈现为&lt; span&gt;。要创建&lt;标签&gt; - 你需要System.Web.UI.HtmlGenericControl(“label”)。