fix: 修复 Better-EN5 侧 EnbxReader 类型错误 + PptxImporter Relationship 命名空间修复

This commit is contained in:
雾启工作室
2026-06-28 12:14:46 +08:00
parent 8c9c62fb74
commit 0c189d203d
4 changed files with 25 additions and 17 deletions

View File

@@ -10,6 +10,7 @@ namespace BetterEN5.Services.Conversion
{
public class EnbxReader
{
private static readonly XNamespace Rel = "http://schemas.openxmlformats.org/package/2006/relationships";
private int _nextId;
public SmfDocument Import(string enbxPath)
@@ -29,7 +30,7 @@ namespace BetterEN5.Services.Conversion
if (docPart != null)
{
var docXml = XDocument.Load(docPart.GetStream());
ParseDocumentXml(docXml, doc, enbx);
ParseDocumentXml(docXml.Root ?? throw new InvalidOperationException("Missing document root"), doc, enbx);
}
else
{
@@ -67,7 +68,7 @@ namespace BetterEN5.Services.Conversion
var relsPart = enbx.GetPart(relsUri);
var rels = XDocument.Load(relsPart.GetStream());
foreach (var rel in rels.Root?.Elements("Relationship") ?? Enumerable.Empty<XElement>())
foreach (var rel in rels.Root?.Elements(Rel + "Relationship") ?? Enumerable.Empty<XElement>())
{
var type = (string)rel.Attribute("Type") ?? "";
if (type.Contains("document") || type.Contains("officeDocument"))
@@ -83,8 +84,8 @@ namespace BetterEN5.Services.Conversion
private void ParseDocumentXml(XElement docXml, SmfDocument doc, Package enbx)
{
var root = docXml.Root ?? docXml;
var enNs = root.GetDefaultNamespace();
var root = docXml;
var enNs = root.Name.Namespace;
var props = root.Element(enNs + "Properties");
if (props != null)
@@ -153,7 +154,7 @@ namespace BetterEN5.Services.Conversion
private void ParseSlideXml(XDocument slideXml, SmfDocument doc, int slideNum)
{
var root = slideXml.Root ?? slideXml;
var root = slideXml.Root ?? throw new InvalidOperationException("Missing slide root");
var enNs = root.GetDefaultNamespace();
var slide = new SmfSlide { Id = $"slide_{slideNum}" };