[英]create xml with parent and child node in vb.net
我需要通過從某個位置讀取 pdf 文件名來創建 xml。我編寫了代碼但無法獲得迭代子節點。請幫我做同樣的事情
樣本文件名:ABC_2345_P1.pdf ABC_2111_Q1.pdf ABC_1225_Q2.pdf
Out XML 應該要求如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Folder>
<PolicyFrom>ABC</PolicyFrom>
<Documents>
<Doc>
<DocGuid>2345</DocGuid>
<DocType>P1</DocType>
<DocName>ABC_2345_P1.pdf</DocName>
</Doc>
<Doc>
<DocGuid>2111</DocGuid>
<DocType>Q1</DocType>
<DocName>ABC_2111_Q1.pdf</DocName>
</Doc>
<Doc>
<DocGuid>1225</DocGuid>
<DocType>Q2</DocType>
<DocName>ABC_1225_Q2.pdf</DocName>
</Doc>
</Documents>
</Folder>
我寫了一個代碼,但它沒有創建迭代子節點,請幫我糾正:
For i As Integer = 1 To _NoOfFiles
'Dim FileNameSeq = _DocIssueDate & "_" & _DocTypeCode & "_" & _PolicyNo & "_" & _CompanyCode & "_" & _Case_id & "_" & _NoOfFiles & "_" & _FileNo & "_" & _PStartDate
Dim FileNameSeq = _PolicyFrom & "_" & _DocGuid & "_" & _DocType & "_" & _DocName
If File.Exists(_SOURCEPDFPATHWITHOUTFILE & "\" & FileNameSeq & ".pdf") Then
Dim FileLocation As DirectoryInfo = New DirectoryInfo("C:\Folder\Subfolder\Data\Input\")
Dim FileLoc As String = "C:\Folder\Subfolder\Data\Input\"
'Dim fi As FileInfo() = FileLocation.GetFiles(_DocIssueDate & "_" & _DocTypeCode & "_" & _PolicyNo & "_" & _CompanyCode & "_" & _Case_id & "_" & _NoOfFiles & "_" & i & "_" & _PStartDate & ".pdf")
For Each file As String In IO.Directory.GetFiles(_SOURCEPDFPATHWITHOUTFILE, "" _PolicyFrom & "_" & _DocGuid & "_" & _DocType & "_" & _DocName & ".pdf", IO.SearchOption.AllDirectories)
'The next line of code gets file names with extensions from searched directories and subdirectories
Dim fName As String = IO.Path.GetFileName(file)
Console.WriteLine(fName)
If i = 1 Then
Dim Firstfile As String = fName
Dim companyFile As XElement = New XElement("Folder",
New XElement("PolicyFrom", New Object() ,
New XElement("Doc",
New XElement("DocGuid", _SOURCEPDFPATH_FileName,
New XElement("DocType", _SOURCEPDFPATH_FileName,
New XElement("DocName", _SOURCEPDFPATH_FileName,
))))
})
})
)
companyFile.Save("D:\PDF_UPLD\" & _SOURCEPDFPATH_FileName & ".xml")
End If
'System.IO.File.Delete(FileLoc & fName)
Next
End If
Next
Else
Continue For
End If
Next
這是一些創建您需要的 xml 結構的自包含代碼:
var xDocument = new XDocument(new XElement("Folder"));
xDocument.Root.Add(new XElement("PolicyFrom", "ABC"));
var documents = new XElement("Documents");
for(var i = 0; i < 3; i++)
{
var doc = new XElement("Doc");
doc.Add(new XElement("DocGuid", "2345"));
doc.Add(new XElement("DocType", "P1"));
doc.Add(new XElement("DocName", "ABC_2345_P1.pdf"));
documents.Add(doc);
}
xDocument.Root.Add(documents);
您所要做的就是用您的循環替換 for 循環,並使用正確的文件信息填充 xml 節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.