Recent

Author Topic: Question about TDOMNode NodeName  (Read 5892 times)

stab

  • Full Member
  • ***
  • Posts: 234
Question about TDOMNode NodeName
« on: January 19, 2021, 05:00:51 pm »
Is there some restriction regarding TDOMNode NodeName?
It is OK to create a node with NodeName: "text:s",
but I would need NodeName: "text:s/" and tried following:
  textSNode := currentDoc.CreateElement('text:s/'); and got error message:
EDOMError.Create(INVALID_CHARACTER_ERR, 'DOMDocument.CreateElement');

How should I do to create a node like this? %)


Bart

  • Hero Member
  • *****
  • Posts: 5275
    • Bart en Mariska's Webstek
Re: Question about TDOMNode NodeName
« Reply #1 on: January 19, 2021, 07:20:09 pm »
Slashes are separators AFAIK.

Bart

stab

  • Full Member
  • ***
  • Posts: 234
Re: Question about TDOMNode NodeName
« Reply #2 on: January 19, 2021, 08:21:08 pm »
I'm trying to modify a open office document, which consists of a few xml-files.
The text is in content.xml and there I need to be able to generate  "text:s/" and
here I'm stuck. %)

Any help appreciated

wp

  • Hero Member
  • *****
  • Posts: 11857
Re: Question about TDOMNode NodeName
« Reply #3 on: January 19, 2021, 11:34:53 pm »
I'm trying to modify a open office document ... I need to be able to generate  "text:s/"
As part of a node? I cannot imagine that such nodes exist inside a libreoffice document. Or as part of the text? In this case you could expand the html entity, e.g. like "text:s\"

stab

  • Full Member
  • ***
  • Posts: 234
Re: Question about TDOMNode NodeName
« Reply #4 on: January 19, 2021, 11:57:04 pm »
In the end of this excerpt from content.xml from a open office document i swedish
you can see "<text:s/>På detta må vi akta,"

<?xml version="1.0" encoding="UTF-8"?>
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:textooo="http://openoffice.org/2013/office" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" office:version="1.2">
   <office:scripts/>
   <office:font-face-decls>
      <style:font-face style:name="Arial2" svg:font-family="Arial" style:font-family-generic="swiss"/>
      <style:font-face style:name="Times New Roman" svg:font-family="&apos;Times New Roman&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
      <style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="swiss" style:font-pitch="variable"/>
      <style:font-face style:name="Arial1" svg:font-family="Arial" style:font-family-generic="system" style:font-pitch="variable"/>
      <style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
      <style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
   </office:font-face-decls>
   <office:automatic-styles>
      <style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
         <style:paragraph-properties fo:text-align="justify" style:justify-single-word="false"/>
         <style:text-properties fo:font-size="13pt" style:font-size-asian="13pt" style:font-size-complex="13pt"/>
      </style:style>
   </office:automatic-styles>
   <office:body>
      <office:text text:use-soft-page-breaks="true">
         <text:sequence-decls>
            <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
            <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
            <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
            <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
         </text:sequence-decls>
         <text:p text:style-name="P1">
            <text:s/>På detta må vi akta, så mycket mer som vi vet vad tiden lider, att stunden nu är inne till att stå upp ur sömnen.  </text:p>

BeniBela

  • Hero Member
  • *****
  • Posts: 905
    • homepage
Re: Question about TDOMNode NodeName
« Reply #5 on: January 20, 2021, 12:06:16 am »

wp

  • Hero Member
  • *****
  • Posts: 11857
Re: Question about TDOMNode NodeName
« Reply #6 on: January 20, 2021, 12:33:21 am »
Looks like space character node (https://stackoverflow.com/questions/16561460/what-texts-means). What happens when you replace it by a usual space character in the xml and repack to odt?

dsiders

  • Hero Member
  • *****
  • Posts: 1052
Re: Question about TDOMNode NodeName
« Reply #7 on: January 20, 2021, 02:47:45 am »
Is there some restriction regarding TDOMNode NodeName?
It is OK to create a node with NodeName: "text:s",
but I would need NodeName: "text:s/" and tried following:
  textSNode := currentDoc.CreateElement('text:s/'); and got error message:
EDOMError.Create(INVALID_CHARACTER_ERR, 'DOMDocument.CreateElement');

How should I do to create a node like this? %)

<text:s/> is just an EMPTY elment with the name "text:s". Create the empty namespaced element and add it to the correct parent .
Preview Lazarus 3.99 documentation at: https://dsiders.gitlab.io/lazdocsnext

stab

  • Full Member
  • ***
  • Posts: 234
Re: Question about TDOMNode NodeName
« Reply #8 on: January 20, 2021, 10:38:35 am »
Thanks to you all,

dsiders; I had tried to make an empty element with the name "text:s", but must have done
some mistake in the code. Now it works :D

 

TinyPortal © 2005-2018