关键词:
【中文标题】如何创建带前缀的 XmlElement 属性?【英文标题】:How to create XmlElement attributes with prefix? 【发布时间】:2011-01-16 08:28:14 【问题描述】:我需要能够在 xml 元素中定义带有前缀的属性。
比如……
<nc:Person s:id="ID_Person_01"></nc:Person>
为了做到这一点,我认为以下方法会起作用。
XmlElement TempElement = XmlDocToRef.CreateElement("nc:Person", "http://niem.gov/niem/niem-core/2.0");
TempElement.SetAttribute("s:id", "http://niem.gov/niem/structures/2.0", "ID_Person_01");
不幸的是,XmlElement.SetAttribute(string, string, string) 似乎不支持解析前缀,因为我收到以下错误。
“:”字符,十六进制值 0x3A,不能包含在名称中。
如何定义带前缀的属性?
【问题讨论】:
【参考方案1】:如果您已经在根节点中声明了您的命名空间,您只需更改SetAttribute
调用以使用不带前缀的属性名称。因此,如果您的根节点定义了这样的命名空间:
<People xmlns:s='http://niem.gov/niem/structures/2.0'>
您可以这样做,该属性将获取您已经建立的前缀:
// no prefix on the first argument - it will be rendered as
// s:id='ID_Person_01'
TempElement.SetAttribute("id", "http://niem.gov/niem/structures/2.0", "ID_Person_01");
如果您还没有声明命名空间(及其前缀),三字符串 XmlDocument.CreateAttribute
重载将为您完成:
// Adds the declaration to your root node
var attribute = xmlDocToRef.CreateAttribute("s", "id", "http://niem.gov/niem/structures/2.0");
attribute.InnerText = "ID_Person_01"
TempElement.SetAttributeNode(attribute);
【讨论】:
这行得通。我已经在根节点中有命名空间。只需从 SetAttribute 方法的第一个参数中删除前缀。谢谢! 非常有帮助。一件小事 - 缺少一个等于/赋值运算符XmlAttribute attribute = xmlDocToRef.
【参考方案2】:
XMLDocument.CreateAttribute 方法可以采用 3 个字符串:指定的 Prefix、LocalName 和 NamespaceURI。然后,您可以将属性添加到元素。这样的事情可能对你有用:
XmlAttribute newAttribute = XmlDocToRef.CreateAttribute("s", "id", "http://niem.gov/niem/structures/2.0");
TempElement.Attributes.Append(newAttribute):
【讨论】:
【参考方案3】:尝试直接创建属性并将其添加到元素中:
XmlAttribute attr = XmlDocToRef.CreateAttribute("s", "id", "http://niem.gov/niem/structures/2.0");
attr.InnerText = "ID_Person_01";
TempElement.Attributes.Append(attr);
【讨论】:
【参考方案4】:由于我的搜索一直把我带到这里,我会回答这个XElement
。我不知道这个解决方案是否也适用于XmlElement
,但希望它至少可以帮助使用XElement
的其他人,他们最终会在这里。
基于this,我在某个模板中的所有数据节点中添加了xml:space="preserve"
,然后再查找并添加它们的内容。这是奇怪的代码 IMO(我更喜欢上面显示的三个参数,但它可以完成工作:
foreach (XElement lElement in root.Descendants(myTag))
lElement.Add(new XAttribute(root.GetNamespaceOfPrefix("xml") + "space", "preserve"));
【讨论】:
如何使用 JAXB 创建没有价值的 XmlElement
】如何使用JAXB创建没有价值的XmlElement【英文标题】:HowtocreateXmlElementwithnovaluewithJAXB【发布时间】:2019-08-0907:50:00【问题描述】:想要使用JAXB创建以下XML元素,没有值(内容),没有关闭元素名称,只是关闭\'/\':<ElementNameatt... 查看详情
使用 XElement 创建带前缀的 XML 元素
】使用XElement创建带前缀的XML元素【英文标题】:CreatinganXMLelementwithaprefixusingXElement【发布时间】:2012-10-2213:48:08【问题描述】:我有一个使用包含多个WPF自定义组件的画布的应用程序。我想将这些组件导出到一个XAML文件中,以... 查看详情
如何在运行时创建不带数据属性的剔除数据绑定
】如何在运行时创建不带数据属性的剔除数据绑定【英文标题】:Howtocreateknockoutdatabindingsatruntimew/odataattributes【发布时间】:2013-10-1313:06:38【问题描述】:是否可以仅从javascript创建敲除绑定,即无需编写自定义html属性?我非常... 查看详情
如何使用 NestJS 创建带参数的嵌套路由
】如何使用NestJS创建带参数的嵌套路由【英文标题】:HowtocreatenestedrouteswithparametersusingNestJS【发布时间】:2018-10-3012:40:36【问题描述】:我需要构建一个API,其中大多数路由都以一个公共URL部分为前缀,该部分也有一个参数。在... 查看详情
使用类前缀创建 CSS 规则 [重复]
...md-1的宽度小于col-md-2。但是,它们都有一些共同的属性。如何创建一个适用于共享相同前缀的多个类的规则?我想像这样:.col*margin:0,2%;.c 查看详情
使用 XMLRoot/XMLElement 和使用 Serializable() 属性之间的区别(在 c# 中)
】使用XMLRoot/XMLElement和使用Serializable()属性之间的区别(在c#中)【英文标题】:DifferencebetweenusingXMLRoot/XMLElementandusingSerializable()attributes(inc#)【发布时间】:2011-05-1300:27:25【问题描述】:使用XMLRoot/XMLElement和使用Serializable()属性有... 查看详情
如何使用 lxml 在属性值中设置命名空间前缀?
】如何使用lxml在属性值中设置命名空间前缀?【英文标题】:howtosetanamespaceprefixinanattributevalueusingthelxml?【发布时间】:2010-09-1014:24:05【问题描述】:我正在尝试使用lxml创建XML模式。一开始是这样的:<xs:schemaxmlns="http://www.goo.c... 查看详情
在序列化期间将组 c# 类属性分组到 XmlElement 属性中
】在序列化期间将组c#类属性分组到XmlElement属性中【英文标题】:Groupgroupc#classpropertiesintoXmlElementattributesduringserialization【发布时间】:2021-05-2908:01:12【问题描述】:在将c#类序列化为xml的过程中,我需要匹配某个xml结构,但最好... 查看详情
Lumen (5.8.12) - 带前缀的多个可选参数
...【发布时间】:2019-10-1415:14:43【问题描述】:我正在尝试创建这样的端点:/most-popular/language/language[/max/max[/page/page]]如果我创建两条单独的路线,它会完美运行:/most-popular/language 查看详情
如何在 Sequelize ORM 中获取不带前缀表名的连接数据结果
】如何在SequelizeORM中获取不带前缀表名的连接数据结果【英文标题】:HowtogetjoindataresultwithoutprefixtablenameinSequelizeORM【发布时间】:2018-10-1309:08:32【问题描述】:我在节点js中使用sequelizeORM。我加入两个表并获得结果,但结果以表... 查看详情
是否可以创建具有两个 xml 命名空间的 XmlElement?
】是否可以创建具有两个xml命名空间的XmlElement?【英文标题】:IsitpossibletocreateanXmlElementwithtwoxmlnamespaces?【发布时间】:2020-02-1008:33:07【问题描述】:我必须像下面这样生成XML:<foo:documentxmlns="http://www.example.com/xmlns"xmlns:foo="htt... 查看详情
如何获取 XmlElement 的字符位置?
】如何获取XmlElement的字符位置?【英文标题】:HowtogetthecharacterlocationofaXmlElement?【发布时间】:2011-09-1012:31:41【问题描述】:假设在我的C#代码中,我从XmlDocument(或XDocument强>)。如何在XML文件中获取此XmlElement的字符位置?... 查看详情
C#:如何从 XElement 中获取名称(带前缀)作为字符串?
】C#:如何从XElement中获取名称(带前缀)作为字符串?【英文标题】:C#:Howtogetthename(withprefix)fromXElementasstring?【发布时间】:2011-09-1706:43:30【问题描述】:这可能是重复的,因为我的问题似乎很琐碎,但我无法在***.com上找到答... 查看详情
创建带属性的xml文档
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Xml;namespace创建带属性的XML文档{classProgram{staticvoidMain(string[]args){XmlDocumentdoc= 查看详情
带前缀导入的标签库中没有定义标签
...39:30【问题描述】:我正在IntellijIDEA中使用JavaEE7,并尝试创建和使用自定义.tag文件。我已关注this的回答并在WEB-INF/tags中创建了一个wrapper.tag文件:<%@tagdescription="SimpleWrapp 查看详情
jaxb中注解@xmlelement中的属性required等于true或fasle都是起啥作用
jaxb中注解@XmlElement,用required属性来指定该元素是否必须出现,required为true时,表示@XMLElement注解下的变量为必传变量;required为false时,表示该变量为非必传变量。希望能够帮到你!参考技术AElement是Node的子集如:<Book>//node<... 查看详情
AngularJS中如何使用属性前缀“x-”和“data-”
】AngularJS中如何使用属性前缀“x-”和“data-”【英文标题】:Howaretheattributeprefixes"x-"and"data-"usedinAngularJS【发布时间】:2013-02-2118:40:27【问题描述】:我是Angular的新手,并试图理解“x-”和“data-”前缀的含义。在... 查看详情
如何删除 XmlElement ? (XmlNode 与 XmlElement)
】如何删除XmlElement?(XmlNode与XmlElement)【英文标题】:HowtoRemoveXmlElement?(XmlNodevsXmlElement)【发布时间】:2010-12-0608:26:30【问题描述】:我尝试在C#2.0中从我的Xml文件中删除一些XmlElements。我可以使用XmlNode.Remove()方法成功删除它。... 查看详情