请教大牛们关系动态生成XML格式文件的问题

风吹腚腚凉 2016-09-07 03:59:35
http://www.cnblogs.com/beimeng/p/3183676.html
网上有一个是符合的需求的,但是尼玛太扯淡,需要动态编译,这性能和稳定性就太差了,
所以想问问有没有别的方案。
需求是这样的,首先
通过读取一个XML文件,获取用来生成新的XML文件的格式,
例如
<a type=“”X.XML“”>
<节点name=“123”>
<节点name‘234"’>
生成的文件就是
<123>
</123>
<234>
</234>
前辈们有木有,有经验的求赐教。。。
...全文
337 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
风吹腚腚凉 2016-09-09
  • 打赏
  • 举报
回复
引用 11 楼 starfd 的回复:
好吧,我把上面的a改成了a-b试了下可以,不过没明白你的ECMC-SSL是什么意思
找到解决方案了谢谢大哥了, [XmlElement(ElementName = "order-123")] public paymentServiceSubmitOrder order1 { get { return this.orderField; } set { this.orderField = value; } }
风吹腚腚凉 2016-09-09
  • 打赏
  • 举报
回复
引用 16 楼 sbwwkmyd 的回复:
看到 #13 才知道楼主想要干什么
我想干什么?
风吹腚腚凉 2016-09-09
  • 打赏
  • 举报
回复
引用 15 楼 zhi_ai_yaya 的回复:
http://bbs.csdn.net/topics/392016510 看看这位哥们的写xml代码,有没有参考性
谢谢你,不过我不喜欢这种编程风格, 我比较喜欢先创建好对象,再从对象转换成XML,这样就不用操心数据的写入和映射问题了。
showjim 2016-09-09
  • 打赏
  • 举报
回复
看到 #13 才知道楼主想要干什么
我叫小菜菜 2016-09-09
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/392016510 看看这位哥们的写xml代码,有没有参考性
qq_33384315 2016-09-09
  • 打赏
  • 举报
回复
不错啊,可以的
风吹腚腚凉 2016-09-08
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
string xmlTemplte = @"<root><item name=""a""/><item name=""b""/></root>";
XElement rt = XElement.Parse(xmlTemplte);
var eles = rt.Elements("item");
XElement nx = new XElement("New");
foreach (var e in eles)
{
    nx.Add(new XElement(e.Attribute("name").Value));
}
Console.WriteLine(nx);
不知道理解的对不对
还一个问题 <paymentDetails action="REFUND"> <ECMC-SSL> <cardNumber>xxxx</cardNumber> <expiryDate> <date month="12" year="2017"/> </expiryDate> <cardHolderName>Steven Lim</cardHolderName> </ECMC-SSL> </paymentDetails> 我这个节点里面的名字是特殊字符怎么办? ECMC-SSL????这个直接就无法生成。
风吹腚腚凉 2016-09-08
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
string xmlTemplte = @"<root><item name=""a""/><item name=""b""/></root>";
XElement rt = XElement.Parse(xmlTemplte);
var eles = rt.Elements("item");
XElement nx = new XElement("New");
foreach (var e in eles)
{
    nx.Add(new XElement(e.Attribute("name").Value));
}
Console.WriteLine(nx);
不知道理解的对不对
换个问题换个问题。我已经说服领导不要这么做了很2,仔细一想其实就是一个变异版的ORM框架。 我按照你上次教我的方法从VS2012以上的版本,复制XML成实体对象。 然后我再把这个实体对象转换成XML,怎么转换, 如果我用流的方式序列化和反序列化对象不一致,.NET提供了转换方案了么?
风吹腚腚凉 2016-09-08
  • 打赏
  • 举报
回复
引用 11 楼 starfd 的回复:
好吧,我把上面的a改成了a-b试了下可以,不过没明白你的ECMC-SSL是什么意思
就是一个节点。。。。节点名称叫这个。 然后我复制这个XML生成实体类,这个对象的属性就没有被创建了。 应该是声明属性名称的时候不允许有a-b - 吧。 这怎么整? 难道我需要替换一下?然后在生成的时候再替换回来? 这不增加额外的工作了么。。。 还有就是我在把实体转换成XML的时候,没有被赋值的属性,节点不会生成,我需要赋个初始值么? 还是有别的什么办法?
  • 打赏
  • 举报
回复
好吧,我把上面的a改成了a-b试了下可以,不过没明白你的ECMC-SSL是什么意思
风吹腚腚凉 2016-09-08
  • 打赏
  • 举报
回复
引用 9 楼 starfd 的回复:
xml节点不允许中划线吧?
好像可以有吧,反正我写在C#里没报错啊 这个是别人给我的,不是我定义的,诶气死我了,我又没办法跟那个人沟通。。。。
  • 打赏
  • 举报
回复
xml节点不允许中划线吧?
风吹腚腚凉 2016-09-07
  • 打赏
  • 举报
回复
我不是要单纯的转换模板啊,那我还问个P啊。 肯定要往新格式里面写入数据啊。。。。
wanghui0380 2016-09-07
  • 打赏
  • 举报
回复
貌似还真木人记得XSLT这玩意,其实这个可以把xml格式成另一个文本(只要有规则就行),你可以把xml格式成xml,html,xhtml,csv,svg等等 这个才是正常途径
Poopaye 2016-09-07
  • 打赏
  • 举报
回复
生成的文件比源文件还小,为什么不直接写呢
  • 打赏
  • 举报
回复
string xmlTemplte = @"<root><item name=""a""/><item name=""b""/></root>";
XElement rt = XElement.Parse(xmlTemplte);
var eles = rt.Elements("item");
XElement nx = new XElement("New");
foreach (var e in eles)
{
    nx.Add(new XElement(e.Attribute("name").Value));
}
Console.WriteLine(nx);
不知道理解的对不对
  • 打赏
  • 举报
回复
按xml生成新的xml,看你描述,linq2xml直接读取节点,然后再遍历节点的attribute,作为新xml的name就行了啊
wanghui0380 2016-09-07
  • 打赏
  • 举报
回复
如果你知道什么XSLT,那么就好办了,写个xslt转换模版就可以收功了

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧