首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML2:如何过滤CodeMirror属性?

XML2:如何过滤CodeMirror属性?
EN

Stack Overflow用户
提问于 2011-08-19 21:13:32
回答 2查看 362关注 0票数 0

有没有办法修改CodeMirror或XML模式定义脚本来过滤一些用户不应该在屏幕上看到的属性?

所以我只想找到这些属性并为它们提供一个新类,这个类被设置为'display:none‘

例如..。

之前:

代码语言:javascript
复制
<sample1 xns:id="e7b014d9-6271-4e32-921d-7488edfd6ea4">a</sample1>
<sample2 xns:id="d3450e86-7264-4512-9891-6c7183257741">b</sample2>
<sample3 xns:id="7f04f178-f235-4647-8584-c4e77f73fecf">c</sample3>

之后:

代码语言:javascript
复制
<sample1>a</sample1>
<sample2>b</sample2>
<sample3>c</sample3>

我不想删除XML本身的属性,我只想隐藏它们,因为当我将编辑结果转换回XML对象时,我需要它们。

EN

回答 2

Stack Overflow用户

发布于 2011-08-19 21:21:19

您可以尝试使用xslt将模式转换为所需格式。不替换文件,但生成具有隐藏属性的anather。

票数 0
EN

Stack Overflow用户

发布于 2011-09-28 00:43:42

下面是我完成这项工作的C#代码。您可以很容易地将其修改为JavaScript。

代码语言:javascript
复制
public static string RemoveAttributes(
        string xmlString)  {
  string retXML = null;
  XmlDocument xDoc = new XmlDocument();
  xDoc.LoadXml(xmlString);
  XmlNode root = xDoc.DocumentElement;
  if (xDoc.DocumentElement != null) {
     XmlNodeList list = xDoc.SelectNodes(@"/");

     if ( list != null ) {
        RemoteAttributes(list);
        retXML = root.OuterXml;
     }
  }

  return retXML;
}

private static void RemoteAttributes(XmlNodeList list) {
  if (list != null ) {
    foreach (XmlNode node in list) {
      if (node.Attributes != null) {
        node.Attributes.RemoveAll();
      }
      if (node.HasChildNodes) {
        RemoteAttributes(node.ChildNodes);
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7122109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档