<Share version="1.0 Beta">
<Properties>
<Owner toolID="ProE" version="Wildfire 5.0" />
<ModelType>Assembly</ModelType>
<ModelSubType>Design</ModelSubType>
</Properties>
<ServerPath Name="http://tp052/Model/" />
<ExportData />
<Attributes />
<Parameters>
<Parameters Name="DESCRIPTION" Type="String" Value="" />
<Parameters Name="MODELED_BY" Type="String" Value="" />
</Parameters>
<References />
<Dependencys />
<Components>
<CompFile Name="1.xml" Type="Assembly" />
<CompFile Name="2.xml" Type="Part" />
</Components>
</Share>怎样取到<Components>
<CompFile Name="1.xml" Type="Assembly" />
<CompFile Name="2.xml" Type="Part" />
</Components>
中的2个xml呢。。代码如果写?
<Properties>
<Owner toolID="ProE" version="Wildfire 5.0" />
<ModelType>Assembly</ModelType>
<ModelSubType>Design</ModelSubType>
</Properties>
<ServerPath Name="http://tp052/Model/" />
<ExportData />
<Attributes />
<Parameters>
<Parameters Name="DESCRIPTION" Type="String" Value="" />
<Parameters Name="MODELED_BY" Type="String" Value="" />
</Parameters>
<References />
<Dependencys />
<Components>
<CompFile Name="1.xml" Type="Assembly" />
<CompFile Name="2.xml" Type="Part" />
</Components>
</Share>怎样取到<Components>
<CompFile Name="1.xml" Type="Assembly" />
<CompFile Name="2.xml" Type="Part" />
</Components>
中的2个xml呢。。代码如果写?
解决方案 »
- 求一条列转行SQL语句
- C#文本框透明 重绘
- 聊天程序中怎么使对方的信息和自己的信息在richTextBox中显示不同的颜色
- 求一个解决方案?
- 科学计数法 datagridview 里面显示的问题。
- C#解析单片机上的数据二进制文件BIN
- [C#]无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。
- .net引用了一个activex控件,怎么把它拖到窗口里啊?
- this.sqlInsertCommand1.CommandText = "INSERT INTO MyTable(name, age, text) VALUES (@name, @age, @text);
- 一个小问题
- [看了python后压力很大]请问什么情况下用C#比较好什么时候用python好?
- 关于点击按钮弹出窗体。
xmlDoc.LoadXml("xml内容string");
XmlNodeList nodes = xmlDoc.GetElementsByTagName("Components/CompFile");
static void Main(string[] args)
{
XmlDocument xml = new XmlDocument();
xml.Load("Test.xml");
XmlNode xn = xml.SelectSingleNode("Share/Components");
foreach (XmlNode xn1 in xn.ChildNodes)
{
Console.WriteLine(xn1.Attributes["Name"].Value);
Console.WriteLine(xn1.Attributes["Type"].Value);
}
Console.ReadLine();
}
string xmlstr = "...";
XmlDocument xd = new XmlDocument();
xd.LoadXml(xmlstr);
XmlNodeList xnl = xd.SelectNodes("Share/Components/CompFile");
foreach(XmlNode xn in xnl)
{
string name = xn.Attributes["Name"].Value;
string type = xn.Attributes["Type"].Value;
}
void Main()
{
string xml = @"<Share version=""1.0 Beta"">
<Properties>
<Owner toolID=""ProE"" version=""Wildfire 5.0"" />
<ModelType>Assembly</ModelType>
<ModelSubType>Design</ModelSubType>
</Properties>
<ServerPath Name=""http://tp052/Model/"" />
<ExportData />
<Attributes />
<Parameters>
<Parameters Name=""DESCRIPTION"" Type=""String"" Value="""" />
<Parameters Name=""MODELED_BY"" Type=""String"" Value="""" />
</Parameters>
<References />
<Dependencys />
<Components>
<CompFile Name=""1.xml"" Type=""Assembly"" />
<CompFile Name=""2.xml"" Type=""Part"" />
</Components>
</Share>";
XElement xmlPage = XElement.Parse(xml);
var query = from x in xmlPage.Descendants("Components")
from y in x.Elements("CompFile")
select new
{
name=y.Attribute("Name").Value,
type=y.Attribute("Type").Value
};
foreach(var q in query)
{
Console.WriteLine(q.name+" "+q.type);
}
/*
1.xml Assembly
2.xml Part
*/
}
string xmlstr = "...";
MatchCollection mc = Regex.Matches("(?s)(?<=<Components>.*?<CompFile Name=\")[^\"]*(?=.*?</Components>)");
foreach (Match m in mc)
{
string name = m.Value;
}
如何在获取1.xml和2.xml里节点一些属性值呢。假如1.xml中和刚xml里节点内容一样。
如何在获取1.xml和2.xml里节点一些属性值呢。假如1.xml中和刚xml里节点内容一样。
[/Quote]
var query = from x in xmlPage.Descendants("Components")
from y in x.Elements("CompFile")
//此处加一个where语句即可
select new
{
name=y.Attribute("Name").Value,
type=y.Attribute("Type").Value
};
from y in x.Elements("CompFile")
……
[/Quote]
非常感谢,不过你这种语法我没见过呢。
.net 3.5
//{
// //初始化一个xml实例
// XmlDocument xml = new XmlDocument(); // //导入指定xml文件
// xml.Load(path);
// xml.Load(HttpContext.Current.Server.MapPath("../7in10.xml")); // //指定一个节点
// XmlNode root = xml.SelectSingleNode("/root"); // //获取节点下所有直接子节点
// XmlNodeList childlist = root.ChildNodes; // //判断该节点下是否有子节点
// root.HasChildNodes; // //获取同名同级节点集合
// XmlNodeList nodelist = xml.SelectNodes("/Root/News"); // //生成一个新节点
// XmlElement node = xml.CreateElement("News"); // //将节点加到指定节点下,作为其子节点
// root.AppendChild(node); // //将节点加到指定节点下某个子节点前
// root.InsertBefore(node, root.ChildeNodes[i]); // //为指定节点的新建属性并赋值
// node.SetAttribute("id", "11111"); // //为指定节点添加子节点
// root.AppendChild(node); // //获取指定节点的指定属性值
// string id = node.Attributes["id"].Value; // //获取指定节点中的文本
// string content = node.InnerText; // //保存XML文件
// xml.Save(path);
// xml.Save(HttpContext.Current.Server.MapPath("../7in10.xml"));
// //本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liyongjie/archive/2007/04/26/1585213.aspx
//}
参考参考,我也是照着这个参考的
var v = from p in
((IEnumerable)doc.XPathEvaluate("//Components/CompFile/@Name")).Cast<XAttribute>()
select p.Value;