我试图从xml:lang
更改<section>
属性值,但它会给我一个错误,可能是因为&#34;:&#34;
我还尝试过检查文本,但也出错了:
Debug.WriteLine(xml.SelectSingleNode("/section/@xml:lang").InnerText)
我也尝试过Linq,但这也是一个错误...
如果可以提供帮助,这是我的XML文件的开头:
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:ns5="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1998/Math/MathML" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:date="http://exslt.org/dates-and-times" xmlns:d="http://docbook.org/ns/docbook" audience="notxml" xml:id="EBLTE00BLT501" remap="EBLTE00BLT501-Tuyaux_BLUTOP_dn75-160" version="5.0" xml:lang="fr" role="fiche">
<title>Tubo BLUTOP BioZinalium (fabrico para expedição em contentor)</title>
[...]
谢谢你们
答案 0 :(得分:1)
您必须指定命名空间:
var manager = new XmlNamespaceManager(xml.NameTable);
manager.AddNamespace("ns", "http://docbook.org/ns/docbook");
var lang = xml.SelectSingleNode("/ns:section/@xml:lang", manager);
lang.InnerText = "en";
您也可以更简单地获得它:
var lang = xml.DocumentElement.Attributes["xml:lang"];
lang.InnerText = "en";