, поэтому я обнаружил, что можно использовать буферизованную программу чтения / записи, чтобы скопировать XML-файл поверх слово в слово в новый XML-файл.Тем не менее, мне было интересно, можно ли будет вырезать только часть документа?
Например, глядя на этот пример:
<?xml version="1.0" encoding="UTF-8"?>
<BookCatalogue xmlns="http://www.publishing.org">
<w:pStyle w:val="TOAHeading" />
<Book>
<Title>Yogasana Vijnana: the Science of Yoga</Title>
<author>Dhirendra Brahmachari</Author>
<Date>1966</Date>
<ISBN>81-40-34319-4</ISBN>
<Publisher>Dhirendra Yoga Publications</Publisher>
<Cost currency="INR">11.50</Cost>
</Book>
<Book>
<Title>The First and Last Freedom</Title>
<v:imagedata r:id="rId7" o:title="" croptop="10523f" cropbottom="11721f" />
<Author>J. Krishnamurti</Author>
<Date>1954</Date>
<ISBN>0-06-064831-7</ISBN>
<Publisher>Harper & Row</Publisher>
<Cost currency="USD">2.95</Cost>
</Book>
<w:pStyle w:val="TOAHeading2" />
</BookCatalogue>
Извините, если это неправильный XMLКод, я только что добавил кусочки из документа, на который смотрел, к этому образцу, который нашел.Но в основном, если я хотел найти экземпляр «заголовка» (в данном случае 3-я строка -> TOAHeading), то очистите все от заголовка до тех пор, пока не будет найден другой экземпляр заголовка, и скопируйте его в другой файл XML.Это возможно?Кроме того, если бы я хотел сделать этот временный файл, который я сохраняю, и сохранить этот файл, только если найден экземпляр "изображения" (в данном случае, 14-я строка), это также возможно?Я пытаюсь сделать это как можно проще, у кого-нибудь есть идеи или опыт?Заранее спасибо.
public class IPDriver
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStreamReader("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/document.xml"), "UTF-8"));
BufferedWriter writer = new BufferedWriter(new OutputStreamReader(new FileOutputStreamReader("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/tempdocument.xml"), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null)
{
writer.write(line);
}
// Close to unlock.
reader.close();
// Close to unlock and flush to disk.
writer.close();
}
}
Пример из моего актуального XML-документа
- <w:smartTag w:uri="urn:schemas-microsoft-com:office:smarttags" w:element="address">
- <w:smartTag w:uri="urn:schemas-microsoft-com:office:smarttags" w:element="Street">
- <w:r w:rsidRPr="00822244">
<w:t>6841 Benjamin Franklin Drive</w:t>
</w:r>
</w:smartTag>
</w:smartTag>
</w:p>
- <w:p w:rsidR="00B41602" w:rsidRPr="00822244" w:rsidRDefault="00B41602" w:rsidP="007C3A42">
- <w:pPr>
<w:pStyle w:val="Address" />
</w:pPr>
- <w:smartTag w:uri="urn:schemas-microsoft-com:office:smarttags" w:element="City">
- <w:smartTag w:uri="urn:schemas-microsoft-com:office:smarttags" w:element="place">
Просто ваш базовый файл document.xml из .docx