c# - 显示前检查空 XML 数据验证

标签 c# xml xpath

我想在显示之前检查 xml。我使用的是 XPath 而不是 xsl。例如

<title></title>
<url></url>
<submit></submit>

我想检查是否没有 xml 数据。然后不显示它。因为我将这些值放在 <a href=<%#container.dataitem,url%>>new link</a>. 中 所以我希望如果 url 为空则不显示新链接,否则显示它,同样对于标题,如果标题不为空则显示它,否则不显示它。

主要问题是我可以在 ascx.cs 文件中检查 if(iterator.current.value="")不显示它,但问题出在我给定的 ascx 文件中

<a href="">new link</a>

如果 url 为空,我希望新链接不应该出现... 知道如何检查这种情况吗?

最佳答案

我见过使用 asp:Literal 控件处理此问题。

在网络表单中,您有 <asp:Literal id='literal' runat='server' text='<%# GetAnchorTag(container.dataitem) %>' />

在后面的代码中,您将拥有:

protected string GetAnchorTag(object dataItem) {
  if(dataItem != null) {
    string url = Convert.ToString(DataBinder.Eval(dataItem, "url"));
    if(!string.IsNullOrEmpty(url)) {
      string anchor = /* build your anchor tag */
      return anchor;
    }
  }
  return string.Empty;
}

这样,您要么输出一个完整的 anchor 标记,要么输出一个空字符串。我不知道这如何适合您的标题和提交节点,但它解决了 anchor 显示问题。

就我个人而言,我不喜欢这种方法,但我已经见过很多次了。

关于c# - 显示前检查空 XML 数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1965044/

相关文章:

xml - 如何从经典asp中的xml字符串中的元素中提取文本

xml - 仅当前面的兄弟节点的子节点不是某个节点时,XSL 模板才匹配

c# - 抽象类中的属性可见性

c# - 表达式树中的访问方法组

c# - WPF,创建自定义 DataGridTextColumn 以防止不需要的字符

c# - 有没有更好的方法来计算 C# 中字符串中的字符串格式占位符?

c# - StringBuilder 与 XmlTextWriter

xmllint 没有返回我所期望的 -- n00b 警告

python - 如何隐藏按钮 "Create invoice"但基于条件? (奥杜11)

php - 如何使用 phpstorm 评估特定命名空间的 xpath?