Специальные символы в XML

Для этого все, что я собираюсь сделать, это поменять местами имена столбцов начальной и конечной точек, а затем использовать lead, чтобы получить следующее значение x1 и y1. Затем мы просто добавляем тег source и bind_rows

library(tidyverse)

df2 <- df

names(df2) <- names(df2)[c(3,4,1,2)] # swap names

df2 <- df2 %>% mutate(x1 = lead(x1), y1 = lead(y1),source = "added")

df <- df %>% mutate(source = "original") %>% bind_rows(., df2)

В результате:

# A tibble: 6 x 5
     x0    y0    x1    y1 source  
  <dbl> <dbl> <dbl> <dbl> <chr>   
1  22.6  62.9  45.8  69.9 original
2  38.5  56.6  49.3  21.9 original
3  73.7  27.7  80.8  14   original
4  45.8  69.9  38.5  56.6 added   
5  49.3  21.9  73.7  27.7 added   
6  80.8  14    NA    NA   added  

Если вам нужны строки в порядке:

df2 <- df2 %>% mutate(x1 = lead(x1), y1 = lead(y1),source = "added", ID = seq(1,n()*2, by =2)+1)

df <- df %>% mutate(source = "original", ID = seq(1,n()*2, by =2)) %>% bind_rows(., df2) %>% arrange(ID)

# A tibble: 6 x 6
     x0    y0    x1    y1 source      ID
  <dbl> <dbl> <dbl> <dbl> <chr>    <dbl>
1  22.6  62.9  45.8  69.9 original     1
2  45.8  69.9  38.5  56.6 added        2
3  38.5  56.6  49.3  21.9 original     3
4  49.3  21.9  73.7  27.7 added        4
5  73.7  27.7  80.8  14   original     5
6  80.8  14    NA    NA   added        6
12
задан svick 28 February 2012 в 01:23
поделиться

8 ответов

Вы пытаетесь использовать объект HTML в не-HTML или non-XHTML документе. Эти объекты объявляются в Определении типа документа (DTD) документа.

Необходимо использовать числовую версию Unicode ссылки на сущность. Например, в случае &raquo; необходимо использовать &#187;

С другой стороны, можно определить их в DTD XML-документа:

<!ENTITY entity-name "entity-value">
<!ENTITY raquo "&#187;">

Иначе, если Ваш документ является UTF-8, я полагаю, что можно просто использовать фактический символ непосредственно в XML-документе.

»
22
ответ дан 2 December 2019 в 04:43
поделиться

Вы указывали тип документа для своего файла?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Я думаю, что Вы могли бы получить такие ошибки, если Вы забываете указывать его.

Также иногда объекты работают при определении их числом вместо имени.

&#187; &#171; instead of &raquo; and &laquo;
6
ответ дан 2 December 2019 в 04:43
поделиться

Вы не должны объявлять объект в своем DTD или даже использовать DTD. Вы, вероятно, не должны использовать представление Unicode символа. Вы, конечно, не должны использовать раздел CDATA.

То, что необходимо сделать, использовать DOM для создания XML вместо того, чтобы пытаться создать его с обработкой строк. DOM решит эту проблему для Вас.

В C#, этом коде:

 XmlDocument d = new XmlDocument();
 d.LoadXml("<foo/>");
 char c = (char)187;
 d.DocumentElement.InnerText = "Here's that character: " + c;
 Debug.WriteLine(d.OuterXml);
 d.DocumentElement.InnerText = "Here it is as an HTML entity: &raquo;";
 Debug.WriteLine(d.OuterXml);

производит этот вывод:

<foo>Here's that character: »</foo>
<foo>Here it is as an HTML entity: &amp;raquo;</foo>

Как Вы видите от первого примера,» символ совершенно допустим в тексте XML. Но я не думаю, что Вы пытаетесь представить тот символ.

Я думаю, что Вы пытаетесь сделать то, что находится во втором примере, на основе сообщения об ошибке, что Вы сообщили. Вы пытаетесь представить строку символов &raquo;. Надлежащий способ представить ту строку символов в тексте XML путем выхода из амперсанда; таким образом: &amp;raquo;.

Таким образом, если необходимо использовать обработку строк для создания XML, просто удостоверьтесь, что Вы выходите из любых амперсандов в своих исходных данных. Для не избиения точки, но если бы Вы использовали DOM, это было бы сделано для Вас автоматически.

Еще одна вещь. Довольно вероятно, что в Вашем исходном вопросе, который теперь читает, "Я использую» ", что Вы на самом деле ввели, "Я использую &raquo";. фактическое сообщение не похоже на это, все же. Если необходимо представить текст буквально в скидке с цены, включите его в обратные галочки; иначе объекты HTML будут преобразованы в свое символьное представление, когда сообщение будет представлено.

3
ответ дан 2 December 2019 в 04:43
поделиться

Вы использующий» символ непосредственно или Вы определяющий его как &raquo;? при использовании завершенного символа Вы забывали точку с запятой?

0
ответ дан 2 December 2019 в 04:43
поделиться

Это - проблема, потому что не все объекты HTML являются объектом XML. Можно импортировать DTD HTML в документ как Pat, предложенный, или выполнить одно из следующих действий:

Замените все происшествия специального символа с числовым кодом сущности:

&raquo; becomes &#187;

Перенесите все происшествия специальных символов в ТЕГЕ CDATA

<![CDATA[&raquo;]]>

Определите объекты наверху своего документа

<!DOCTYPE ROOT_XML_ELEMENT [ <!ENTITY raquo "&#187;"> ]>
1
ответ дан 2 December 2019 в 04:43
поделиться

Joe

Когда я использую unicode шоу версии квадрат.

Помещение объявления объекта в xml документ производит, "Не может иметь объявления DTD за пределами DTD". ошибка. Я предполагаю, что это ожидается.

Когда я использую, '' для включения даты внешне это, кажется, не имеет эффекта.

Я задаюсь вопросом, является ли это, возможно, проблемой сервера. Я разрабатываю это локально и использую Детский веб-сервер.

0
ответ дан 2 December 2019 в 04:43
поделиться

просто замените свой объект HTML &raquo; с числовой ссылкой &#187; который хорош в любом XML и HTML.

0
ответ дан 2 December 2019 в 04:43
поделиться

Я гуглил для такой информации много, так решенный отправлять матрицу на своем собственном сайте для простой цели быстро способности сделать поиск:

http://martinkool.com/characters

Используйте &#...; форма действительно.

0
ответ дан 2 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: