有没有办法修改CodeMirror或XML模式定义脚本以启用用户不应在屏幕上看到的少数属性的过滤?
所以我只是想找到那些属性并给它们设置为'display:none'
的新类例如......
之前:
<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>
后:
<sample1>a</sample1>
<sample2>b</sample2>
<sample3>c</sample3>
我不想从XML本身删除属性我只想隐藏它们,因为当我将编辑结果转换回XML对象时我需要它们。
答案 0 :(得分:0)
您可以尝试使用xslt将架构转换为所需的格式。不替换文件,而是使用hiden属性生成anather。
答案 1 :(得分:0)
这是我的C#代码来完成这项工作。您可以轻松地将其修改为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);
}
}
}
}