我将.docx word文件(xml内容)转换为带有此代码的文本(在C#中):
private string ReadNode(XmlNode node)
{
if (node == null || node.NodeType != XmlNodeType.Element)
return string.Empty;
StringBuilder sb = new StringBuilder();
foreach (XmlNode child in node.ChildNodes)
{
if (child.NodeType != XmlNodeType.Element) continue;
switch (child.LocalName)
{
case "t": // Text
sb.Append(child.InnerText.TrimEnd());
string space = ((XmlElement)child).GetAttribute("xml:space");
if (!string.IsNullOrEmpty(space) && space == "preserve")
sb.Append(' ');
break;
case "tab":// Tab
sb.Append("\t");
break;
case "p":// Paragraph
if (ReadNode(child).Trim() != "")
{
sb.Append(ReadNode(child));
sb.Append(Environment.NewLine);
}
break;
default:
sb.Append(ReadNode(child));
break;
}
}
return sb.ToString();
}
如何阅读我的代码中的页面内容的“行号”(类似“p”或“tab”)?
请参阅图片文件(http://i.stack.imgur.com/OVx3O.jpg):
答案 0 :(得分:0)
编辑:
我担心XML不会存储该信息。 XML只是存储文本的一般布局,因此您必须尝试复制布局,然后查看每个文本的位置。这不是很容易。请详细解释您的问题(为什么要尝试这样做),或许我们可以提出另一种不需要获取行号的解决方案?
您需要的信息是在其他“xmlData”节点之一
之下See "<Pages>2</Pages>"
下面的完整xml:
<pkg:part pkg:name="/docProps/app.xml" pkg:contentType="application/vnd.openxmlformats-officedocument.extended-properties+xml" pkg:padding="256">
<pkg:xmlData>
<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
<Template>Normal.dotm</Template>
<TotalTime>0</TotalTime>
<Pages>2</Pages>
<Words>341</Words>
<Characters>1948</Characters>
<Application>Microsoft Office Word</Application>
<DocSecurity>0</DocSecurity>
<Lines>16</Lines>
<Paragraphs>4</Paragraphs>
<ScaleCrop>false</ScaleCrop>
<HeadingPairs>
<vt:vector size="2" baseType="variant">
<vt:variant>
<vt:lpstr>Title</vt:lpstr>
</vt:variant>
<vt:variant>
<vt:i4>1</vt:i4>
</vt:variant>
</vt:vector>
</HeadingPairs>
<TitlesOfParts>
<vt:vector size="1" baseType="lpstr">
<vt:lpstr/>
</vt:vector>
</TitlesOfParts>
<Company/>
<LinksUpToDate>false</LinksUpToDate>
<CharactersWithSpaces>2285</CharactersWithSpaces>
<SharedDoc>false</SharedDoc>
<HyperlinksChanged>false</HyperlinksChanged>
<AppVersion>14.0000</AppVersion>
</Properties>
</pkg:xmlData>
</pkg:part>