初學C#人在這裏,我一直在摔跤特定的場景,我想你的幫助。我需要處理每次閱讀時其內容可能不同的XML文件。每次我閱讀該文檔時,都需要在特定元素內搜索特定屬性。這些特定元素和屬性的組成可能因文件而異。我已經成功地閱讀了這個元素中的單個元素和單個屬性,使用了我在這個論壇上發現的使用Linq到XML的例子。請參閱下面的例子,瞭解我正在使用的XML。C#從特定元素檢索多個XML屬性進行操作
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 wp14">
<w:body>
<w:p w14:paraId="2CBBB1B4" w14:textId="77777777" w:rsidR="00D9548A" w:rsidRDefault="00D9548A" w:rsidP="00ED7A0B"></w:p>
<w:p w14:paraId="2CBBB1B5" w14:textId="77777777" w:rsidR="00ED548A" w:rsidRPr="00ED77B9" w:rsidRDefault="00C706DD" w:rsidP="00D9548A"></w:p>
<w:pPr>
<w:rPr>
<w:rFonts w:ascii="Arial" w:hAnsi="Arial" w:cs="Arial"></w:rFonts>
<w:b></w:b>
<w:sz w:val="40"></w:sz>
<w:szCs w:val="40"></w:szCs>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00cool6F"></w:r>
<w:tr w:rsidR="0029258E" w14:paraId="2CBBB242" w14:textId="77777777" w:rsidTr="0029258E"></w:tr>
</w:body>
</w:document>
有趣元件將是 'W:P', 'W:R', 'W:TR' 或幾乎具有任何以下屬性的任何元素:wrsidR,wrsidRDefault,wrsidRPr,rsidTr。
理想情況下,我想要一種方式將這些值中的每一個讀入某種list \ array中,以便我可以更改這些值並將這些值寫回到我從中獲取的屬性。
我拼湊在一起的代碼僅從文件中的'w:p'元素返回1個屬性'rsidR'。
public static void foobar()
{
string strFile = @"C:\SourceFolder\SampleXML\document-test.xml";
XDocument xDoc = XDocument.Load(strFile);
XNamespace xNsp = xDoc.Root.Name.Namespace;
var values = from rsids in xDoc.Descendants(xNsp + "p").Attributes(xNsp + "rsidR")
select rsids.Value.ToString();
foreach (var v in values)
{
Console.WriteLine(v);
}
}
是什麼都在這個文件中的有趣的屬性值後去,這樣我可以遍歷它們,改值,並將其寫回XML文件的最好方法?
一如既往,我非常感謝您的幫助!
感謝您的建議,值不取決於元素。 –