我在用XDocument
为了加载 XML 文件,包含此内容,我正在尝试读取<pjob:job_variables>
节点内容,并且对于中的每个节点<pjob:job_variables>
获取名称和值,
因此对于<pjob:var name="XMLFilePath">E:\PP\REPC.xt</pjob:var>
得到名字XMLFilePath
以及它的价值E:\PP\REPC.xt
<?xml version="1.0"?>
<?P_command version="1.0"?>
<pjob:job_command xmlns:pjob="http://www.pp.com/schemas" name="SubmitJob">
<pjob:job_variables>
<pjob:var name="XMLFilePath">E:\PP\REPC.xt</pjob:var>
<pjob:var name="TSLFilePath">E:\PP\REPC.tl</pjob:var>
<pjob:var name="_sys_BitmapType">jpeg</pjob:var>
.........
</pjob:job_variables>
<pjob:doc_variables>
<pjob:var name="CompanyPhone"/>
<pjob:var name="CompanyWebsite">www.site.com</pjob:var>
.........
</pjob:doc_variables>
</pjob:job_command>
我尝试了很多变化,比如
string name, value = String.Empty;
XDocument doc = XDocument.Load("../assets/packet.xml");
var authors = doc.Descendants("job_variables");
foreach (var node in nodes)
{
name = node.name;
value = node.value;
}
但他没有找到Descendants
,我怎样才能实现它?
您只需要在前面添加名称空间pjob
:
XNamespace ns = "http://www.pp.com/schemas";
XDocument doc = XDocument.Load("../assets/packet.xml");
var authors = doc.Root.Element(ns + "job_variables").Elements();
或者使用XName.Get()
method:
var authors = doc.Root.Element(XName.Get("job_variables", "http://www.pp.com/schemas")).Elements();
这将获取“job_variables”元素的所有子元素。
按照注释中的指定,获取两者的元素job_variables
and doc_variables
,您甚至不需要通过元素的名称来访问它们;只需使用doc.Root.Elements().Elements()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)