[英]Get value of attribute of an XML node (with namespaces)
这是XML文件
<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile media-type="application/oebps-package+xml" full-path="EPUB/wasteland.opf"/>
</rootfiles>
</container>
这是我的代码
XElement XmlElement;
XmlElement = XElement.Load(containerXml.Stream);
TextBlock tbl= new TextBlock();
foreach (XElement level1Element in XmlElement.Elements("rootfiles"))
{
foreach (XElement level2Element in level1Element.Elements("rootfile"))
{
tbl.Text = level2Element.Attribute("full-path").Value;
}
}
文本块应更改为“ EPUB / wasteland.opf”,但为什么不呢?
您缺少名称空间:
var xdoc = XDocument.Load(containerXml.Stream);
XNamespace ns = "urn:oasis:names:tc:opendocument:xmlns:container";
var path = xdoc.Descendants(ns + "rootfile")
.Select(r => (string)r.Attribute("full-path"))
.FirstOrDefault();
您可以为文本块分配路径:
tbl.Text = path;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.