У меня есть SVG, содержащий несколько групп с текстовым элементом и немного текста.Этот текстовый элемент устанавливается в соответствии с размером его родителя, который иногда может быть несколько маленьким.Это иногда приводит к тому, что текстовый элемент содержит больше текста, чем он может уместить, поэтому он естественным образом переполняется.
У меня есть цикл, который циклически перебирает все эти группы для чтения текста.Когда он сталкивается с переполненным текстовым элементом, он возвращает только видимый текст.
В следующем примере theTile
- это группа.Кроме того, я использую SVG.js .
// If there is a text node in the SVG, collect the details from
// the content and delete it. If there isn't, move on.
const textNode = theTile.select('text');
// Check for a text node. If it exists, collect the content
// for use in positioning for the group.
let groupCoordinates;
const textNodeCount = textNode.members.length;
if (textNodeCount) {
const tileTextRaw = textNode.last().text();
… do some stuff with this text …
}
tileTextRaw
в конечном итоге возвращает «имя: Peristyle_5».Полный текст внутри этого текстового элемента на самом деле «name: Peristyle_5-top: 162-left: 1349-width: 50-height: 75»
Для наглядного примера, вот текстовый элементпытаюсь прочитать в SVG:
![enter image description here](https://i.stack.imgur.com/R919Fm.png)
Это SVG, с которой я работаю:
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="75" viewBox="0 0 50 75">
<title>Peristyle_5</title>
<g id="Peristyle_5">
<g>
<rect id="background-2" data-name="background" width="50" height="75" fill="#7facc7"/>
</g>
<text transform="translate(9.726 21.76)" font-size="15" font-family="OperatorMonoSSm-Book, Operator Mono SSm">nam<tspan x="0" y="18">e:P</tspan><tspan x="0" y="36">eri</tspan></text>
</g>
</svg>
Чего мне не хватает?